Loading the data

carbonData<-read.csv('/Users/angadsingh/Downloads/Carbon Emission.csv')
summary(carbonData)
  Body.Type             Sex                Diet           How.Often.Shower   Heating.Energy.Source  Transport         Vehicle.Type       Social.Activity   
 Length:10000       Length:10000       Length:10000       Length:10000       Length:10000          Length:10000       Length:10000       Length:10000      
 Class :character   Class :character   Class :character   Class :character   Class :character      Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character   Mode  :character      Mode  :character   Mode  :character   Mode  :character  
                                                                                                                                                           
                                                                                                                                                           
                                                                                                                                                           
 Monthly.Grocery.Bill Frequency.of.Traveling.by.Air Vehicle.Monthly.Distance.Km Waste.Bag.Size     Waste.Bag.Weekly.Count How.Long.TV.PC.Daily.Hour
 Min.   : 50.0        Length:10000                  Min.   :   0                Length:10000       Min.   :1.000          Min.   : 0.00            
 1st Qu.:111.0        Class :character              1st Qu.:  69                Class :character   1st Qu.:2.000          1st Qu.: 6.00            
 Median :173.0        Mode  :character              Median : 823                Mode  :character   Median :4.000          Median :12.00            
 Mean   :173.9                                      Mean   :2031                                   Mean   :4.025          Mean   :12.14            
 3rd Qu.:237.0                                      3rd Qu.:2517                                   3rd Qu.:6.000          3rd Qu.:18.00            
 Max.   :299.0                                      Max.   :9999                                   Max.   :7.000          Max.   :24.00            
 How.Many.New.Clothes.Monthly How.Long.Internet.Daily.Hour Energy.efficiency   Recycling         Cooking_With       CarbonEmission
 Min.   : 0.00                Min.   : 0.00                Length:10000       Length:10000       Length:10000       Min.   : 306  
 1st Qu.:13.00                1st Qu.: 6.00                Class :character   Class :character   Class :character   1st Qu.:1538  
 Median :25.00                Median :12.00                Mode  :character   Mode  :character   Mode  :character   Median :2080  
 Mean   :25.11                Mean   :11.89                                                                         Mean   :2269  
 3rd Qu.:38.00                3rd Qu.:18.00                                                                         3rd Qu.:2768  
 Max.   :50.00                Max.   :24.00                                                                         Max.   :8377  
str(carbonData)
'data.frame':   10000 obs. of  20 variables:
 $ Body.Type                    : chr  "overweight" "obese" "overweight" "overweight" ...
 $ Sex                          : chr  "female" "female" "male" "male" ...
 $ Diet                         : chr  "pescatarian" "vegetarian" "omnivore" "omnivore" ...
 $ How.Often.Shower             : chr  "daily" "less frequently" "more frequently" "twice a day" ...
 $ Heating.Energy.Source        : chr  "coal" "natural gas" "wood" "wood" ...
 $ Transport                    : chr  "public" "walk/bicycle" "private" "walk/bicycle" ...
 $ Vehicle.Type                 : chr  "" "" "petrol" "" ...
 $ Social.Activity              : chr  "often" "often" "never" "sometimes" ...
 $ Monthly.Grocery.Bill         : int  230 114 138 157 266 144 56 59 200 135 ...
 $ Frequency.of.Traveling.by.Air: chr  "frequently" "rarely" "never" "rarely" ...
 $ Vehicle.Monthly.Distance.Km  : int  210 9 2472 74 8457 658 5363 54 1376 440 ...
 $ Waste.Bag.Size               : chr  "large" "extra large" "small" "medium" ...
 $ Waste.Bag.Weekly.Count       : int  4 3 1 3 1 1 4 3 3 1 ...
 $ How.Long.TV.PC.Daily.Hour    : int  7 9 14 20 3 22 9 5 3 8 ...
 $ How.Many.New.Clothes.Monthly : int  26 38 47 5 5 18 11 39 31 23 ...
 $ How.Long.Internet.Daily.Hour : int  1 5 6 7 6 9 19 15 15 18 ...
 $ Energy.efficiency            : chr  "No" "No" "Sometimes" "Sometimes" ...
 $ Recycling                    : chr  "['Metal']" "['Metal']" "['Metal']" "['Paper', 'Plastic', 'Glass', 'Metal']" ...
 $ Cooking_With                 : chr  "['Stove', 'Oven']" "['Stove', 'Microwave']" "['Oven', 'Microwave']" "['Microwave', 'Grill', 'Airfryer']" ...
 $ CarbonEmission               : int  2238 1892 2595 1074 4743 1647 1832 2322 2494 1178 ...

From the str of carbon data i can see that i am having empty vehicle types as “” so i will replace them with No vehicle


carbonData$Vehicle.Type[carbonData$Transport=='public'|carbonData$Transport=='walk/bicycle']<-'FuelEfficient'
#carbonData<- carbonData %>% mutate(Vehicle.Type=ifelse(Vehicle.Type=="","No vehicle",Vehicle.Type))
str(carbonData)
'data.frame':   10000 obs. of  20 variables:
 $ Body.Type                    : chr  "overweight" "obese" "overweight" "overweight" ...
 $ Sex                          : chr  "female" "female" "male" "male" ...
 $ Diet                         : chr  "pescatarian" "vegetarian" "omnivore" "omnivore" ...
 $ How.Often.Shower             : chr  "daily" "less frequently" "more frequently" "twice a day" ...
 $ Heating.Energy.Source        : chr  "coal" "natural gas" "wood" "wood" ...
 $ Transport                    : chr  "public" "walk/bicycle" "private" "walk/bicycle" ...
 $ Vehicle.Type                 : chr  "FuelEfficient" "FuelEfficient" "petrol" "FuelEfficient" ...
 $ Social.Activity              : chr  "often" "often" "never" "sometimes" ...
 $ Monthly.Grocery.Bill         : int  230 114 138 157 266 144 56 59 200 135 ...
 $ Frequency.of.Traveling.by.Air: chr  "frequently" "rarely" "never" "rarely" ...
 $ Vehicle.Monthly.Distance.Km  : int  210 9 2472 74 8457 658 5363 54 1376 440 ...
 $ Waste.Bag.Size               : chr  "large" "extra large" "small" "medium" ...
 $ Waste.Bag.Weekly.Count       : int  4 3 1 3 1 1 4 3 3 1 ...
 $ How.Long.TV.PC.Daily.Hour    : int  7 9 14 20 3 22 9 5 3 8 ...
 $ How.Many.New.Clothes.Monthly : int  26 38 47 5 5 18 11 39 31 23 ...
 $ How.Long.Internet.Daily.Hour : int  1 5 6 7 6 9 19 15 15 18 ...
 $ Energy.efficiency            : chr  "No" "No" "Sometimes" "Sometimes" ...
 $ Recycling                    : chr  "['Metal']" "['Metal']" "['Metal']" "['Paper', 'Plastic', 'Glass', 'Metal']" ...
 $ Cooking_With                 : chr  "['Stove', 'Oven']" "['Stove', 'Microwave']" "['Oven', 'Microwave']" "['Microwave', 'Grill', 'Airfryer']" ...
 $ CarbonEmission               : int  2238 1892 2595 1074 4743 1647 1832 2322 2494 1178 ...
#carbonData[carbonData == ""]<-NA
colSums(is.na(carbonData))
                    Body.Type                           Sex                          Diet              How.Often.Shower         Heating.Energy.Source 
                            0                             0                             0                             0                             0 
                    Transport                  Vehicle.Type               Social.Activity          Monthly.Grocery.Bill Frequency.of.Traveling.by.Air 
                            0                             0                             0                             0                             0 
  Vehicle.Monthly.Distance.Km                Waste.Bag.Size        Waste.Bag.Weekly.Count     How.Long.TV.PC.Daily.Hour  How.Many.New.Clothes.Monthly 
                            0                             0                             0                             0                             0 
 How.Long.Internet.Daily.Hour             Energy.efficiency                     Recycling                  Cooking_With                CarbonEmission 
                            0                             0                             0                             0                             0 
library(dplyr)
carbonData<-carbonData %>%
  mutate_if(is.character, as.factor)%>%
  mutate_if(is.integer, as.numeric)

str(carbonData)
'data.frame':   10000 obs. of  20 variables:
 $ Body.Type                    : Factor w/ 4 levels "normal","obese",..: 3 2 3 3 2 3 4 4 3 4 ...
 $ Sex                          : Factor w/ 2 levels "female","male": 1 1 2 2 1 2 1 1 2 1 ...
 $ Diet                         : Factor w/ 4 levels "omnivore","pescatarian",..: 2 4 1 1 4 4 3 3 1 2 ...
 $ How.Often.Shower             : Factor w/ 4 levels "daily","less frequently",..: 1 2 3 4 1 2 2 3 1 1 ...
 $ Heating.Energy.Source        : Factor w/ 4 levels "coal","electricity",..: 1 3 4 4 1 4 4 1 4 4 ...
 $ Transport                    : Factor w/ 3 levels "private","public",..: 2 3 1 3 1 2 1 3 2 2 ...
 $ Vehicle.Type                 : Factor w/ 6 levels "diesel","electric",..: 3 3 6 3 1 3 4 3 3 3 ...
 $ Social.Activity              : Factor w/ 3 levels "never","often",..: 2 2 1 3 2 3 1 3 1 2 ...
 $ Monthly.Grocery.Bill         : num  230 114 138 157 266 144 56 59 200 135 ...
 $ Frequency.of.Traveling.by.Air: Factor w/ 4 levels "frequently","never",..: 1 3 2 3 4 1 3 4 1 3 ...
 $ Vehicle.Monthly.Distance.Km  : num  210 9 2472 74 8457 ...
 $ Waste.Bag.Size               : Factor w/ 4 levels "extra large",..: 2 1 4 3 2 2 3 1 3 1 ...
 $ Waste.Bag.Weekly.Count       : num  4 3 1 3 1 1 4 3 3 1 ...
 $ How.Long.TV.PC.Daily.Hour    : num  7 9 14 20 3 22 9 5 3 8 ...
 $ How.Many.New.Clothes.Monthly : num  26 38 47 5 5 18 11 39 31 23 ...
 $ How.Long.Internet.Daily.Hour : num  1 5 6 7 6 9 19 15 15 18 ...
 $ Energy.efficiency            : Factor w/ 3 levels "No","Sometimes",..: 1 1 2 2 3 2 2 1 3 2 ...
 $ Recycling                    : Factor w/ 16 levels "['Glass', 'Metal']",..: 3 3 3 7 11 4 16 8 2 2 ...
 $ Cooking_With                 : Factor w/ 16 levels "['Grill', 'Airfryer']",..: 14 10 6 2 7 13 1 10 2 2 ...
 $ CarbonEmission               : num  2238 1892 2595 1074 4743 ...
summary(carbonData)
       Body.Type        Sex                Diet             How.Often.Shower Heating.Energy.Source        Transport           Vehicle.Type   Social.Activity
 normal     :2473   female:5007   omnivore   :2492   daily          :2546    coal       :2523      private     :3279   diesel       : 622   never    :3406  
 obese      :2500   male  :4993   pescatarian:2554   less frequently:2487    electricity:2552      public      :3294   electric     : 671   often    :3319  
 overweight :2487                 vegan      :2497   more frequently:2451    natural gas:2462      walk/bicycle:3427   FuelEfficient:6721   sometimes:3275  
 underweight:2540                 vegetarian :2457   twice a day    :2516    wood       :2463                          hybrid       : 642                   
                                                                                                                       lpg          : 697                   
                                                                                                                       petrol       : 647                   
                                                                                                                                                            
 Monthly.Grocery.Bill Frequency.of.Traveling.by.Air Vehicle.Monthly.Distance.Km     Waste.Bag.Size Waste.Bag.Weekly.Count How.Long.TV.PC.Daily.Hour
 Min.   : 50.0        frequently     :2524          Min.   :   0                extra large:2500   Min.   :1.000          Min.   : 0.00            
 1st Qu.:111.0        never          :2459          1st Qu.:  69                large      :2501   1st Qu.:2.000          1st Qu.: 6.00            
 Median :173.0        rarely         :2477          Median : 823                medium     :2474   Median :4.000          Median :12.00            
 Mean   :173.9        very frequently:2540          Mean   :2031                small      :2525   Mean   :4.025          Mean   :12.14            
 3rd Qu.:237.0                                      3rd Qu.:2517                                   3rd Qu.:6.000          3rd Qu.:18.00            
 Max.   :299.0                                      Max.   :9999                                   Max.   :7.000          Max.   :24.00            
                                                                                                                                                   
 How.Many.New.Clothes.Monthly How.Long.Internet.Daily.Hour Energy.efficiency                                  Recycling   
 Min.   : 0.00                Min.   : 0.00                No       :3221    []                                    : 675  
 1st Qu.:13.00                1st Qu.: 6.00                Sometimes:3463    ['Paper', 'Plastic', 'Metal']         : 648  
 Median :25.00                Median :12.00                Yes      :3316    ['Paper', 'Glass', 'Metal']           : 647  
 Mean   :25.11                Mean   :11.89                                  ['Glass', 'Metal']                    : 645  
 3rd Qu.:38.00                3rd Qu.:18.00                                  ['Paper', 'Plastic', 'Glass', 'Metal']: 637  
 Max.   :50.00                Max.   :24.00                                  ['Paper', 'Plastic']                  : 633  
                                                                             (Other)                               :6115  
                                              Cooking_With  CarbonEmission
 ['Stove', 'Oven']                                  : 670   Min.   : 306  
 ['Stove', 'Microwave', 'Grill', 'Airfryer']        : 652   1st Qu.:1538  
 ['Oven', 'Microwave']                              : 649   Median :2080  
 ['Oven', 'Microwave', 'Grill', 'Airfryer']         : 638   Mean   :2269  
 ['Stove', 'Oven', 'Microwave', 'Grill', 'Airfryer']: 637   3rd Qu.:2768  
 ['Stove', 'Grill', 'Airfryer']                     : 628   Max.   :8377  
 (Other)                                            :6126                 
table(carbonData$Body.Type)

     normal       obese  overweight underweight 
       2473        2500        2487        2540 
table(carbonData$Sex)

female   male 
  5007   4993 
table(carbonData$Diet)

   omnivore pescatarian       vegan  vegetarian 
       2492        2554        2497        2457 
table(carbonData$How.Often.Shower)

          daily less frequently more frequently     twice a day 
           2546            2487            2451            2516 
table(carbonData$Heating.Energy.Source)

       coal electricity natural gas        wood 
       2523        2552        2462        2463 
table(carbonData$Transport)

     private       public walk/bicycle 
        3279         3294         3427 
table(carbonData$Social.Activity)

    never     often sometimes 
     3406      3319      3275 
table(carbonData$Frequency.of.Traveling.by.Air)

     frequently           never          rarely very frequently 
           2524            2459            2477            2540 
table(carbonData$Waste.Bag.Size)

extra large       large      medium       small 
       2500        2501        2474        2525 
table(carbonData$Energy.efficiency)

       No Sometimes       Yes 
     3221      3463      3316 
hist(carbonData$CarbonEmission)

carbonData$CarbonEmission<-log(carbonData$CarbonEmission) 
hist(carbonData$CarbonEmission)

carbonIndices<-which(names(carbonData)=='CarbonEmission')
for (c in colnames(carbonData[,-carbonIndices])) {
  if(is.factor(carbonData[,c])){
    try({
        anovaaResult<-aov(carbonData$CarbonEmission~carbonData[,c])
        cat("ANOVA of ",c, "and CarbonEmission", "\n")
        print(summary(anovaaResult))
        boxplot(carbonData$CarbonEmission~carbonData[,c],shade=TRUE, main = paste("Carbon Emission vs", c), xlab ="CarbonEmission", ylab=c ,col="lightgreen")
        
      })
  }
  else if (is.numeric(carbonData[,c])){
    try({
      corTest<-cor.test(carbonData$CarbonEmission,carbonData[,c], method = "pearson")
      cat("p.value of ",c, "and Carbon Emission", corTest$p.value, "\n")
      plot(carbonData$CarbonEmission,carbonData[,c], main = paste("Carbon Emission vs", c), xlab ="Carbon Emission", ylab=c)
    })
  }
  
}
ANOVA of  Body.Type and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    3   82.7  27.583     149 <2e-16 ***
Residuals       9996 1850.3   0.185                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
ANOVA of  Sex and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    1   55.5   55.51   295.6 <2e-16 ***
Residuals       9998 1877.5    0.19                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Diet and CarbonEmission 
                  Df Sum Sq Mean Sq F value   Pr(>F)    
carbonData[, c]    3   11.8   3.944   20.52 2.98e-13 ***
Residuals       9996 1921.2   0.192                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  How.Often.Shower and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)  
carbonData[, c]    3    1.9  0.6333   3.278 0.0201 *
Residuals       9996 1931.1  0.1932                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Heating.Energy.Source and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    3   71.1  23.702   127.2 <2e-16 ***
Residuals       9996 1861.9   0.186                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Transport and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    2  384.7  192.34    1242 <2e-16 ***
Residuals       9997 1548.3    0.15                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Vehicle.Type and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    5  573.6  114.71   843.3 <2e-16 ***
Residuals       9994 1359.5    0.14                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Social.Activity and CarbonEmission 
                  Df Sum Sq Mean Sq F value   Pr(>F)    
carbonData[, c]    2    8.5   4.248   22.07 2.74e-10 ***
Residuals       9997 1924.5   0.193                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

p.value of  Monthly.Grocery.Bill and Carbon Emission 8.380793e-21 

ANOVA of  Frequency.of.Traveling.by.Air and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    3  568.2  189.41    1387 <2e-16 ***
Residuals       9996 1364.8    0.14                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

p.value of  Vehicle.Monthly.Distance.Km and Carbon Emission 0 

ANOVA of  Waste.Bag.Size and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]    3   53.1  17.692   94.07 <2e-16 ***
Residuals       9996 1879.9   0.188                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

p.value of  Waste.Bag.Weekly.Count and Carbon Emission 3.257926e-79 

p.value of  How.Long.TV.PC.Daily.Hour and Carbon Emission 0.2282313 

p.value of  How.Many.New.Clothes.Monthly and Carbon Emission 8.851718e-131 

p.value of  How.Long.Internet.Daily.Hour and Carbon Emission 1.411988e-09 

ANOVA of  Energy.efficiency and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)
carbonData[, c]    2    0.7  0.3284   1.699  0.183
Residuals       9997 1932.4  0.1933               

ANOVA of  Recycling and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)    
carbonData[, c]   15   41.7  2.7802   14.68 <2e-16 ***
Residuals       9984 1891.3  0.1894                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ANOVA of  Cooking_With and CarbonEmission 
                  Df Sum Sq Mean Sq F value Pr(>F)  
carbonData[, c]   15      5  0.3301   1.709 0.0422 *
Residuals       9984   1928  0.1931                 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

library(tidyverse)
parseList<-function(x,emptyLable){
  parsedItem<-str_remove_all(x,"\\[|\\]|'")%>%
    strsplit(", ")%>%
    unlist()
  
  if(length(parsedItem)==0||all(parsedItem=="")){
    parsedItem<-emptyLable
  }
  return(parsedItem)
}
carbonData$Recycling<-sapply(carbonData$Recycling,parseList,emptyLable="No_Recycling")
carbonData$Cooking_With<-sapply(carbonData$Cooking_With,parseList,emptyLable="No_Cooking")

carbonData$Recycling<-sapply(carbonData$Recycling,paste,collapse=",")
carbonData$Cooking_With<-sapply(carbonData$Cooking_With,paste,collapse=",")

#str(carbonData)

dummies<-function(col){

  items<-unlist(str_split(col,","))
  items<-trimws(items)
  items<-items[items != ""]
  
  uniqueItems<-unique(c(items))
  dummyDataFrame<-data.frame(matrix(0,nrow = length(col),ncol = length(uniqueItems)))
  colnames(dummyDataFrame)<-uniqueItems
  
  for (i in seq_along(col)) {
    rowItems<-unlist(str_split(col[i],","))%>%
    map_chr(~str_trim(.))%>%
    discard(~.=="")
    
    rowItems<-rowItems[rowItems %in% uniqueItems]
    dummyDataFrame[i,rowItems]<-1
  }
  return(dummyDataFrame)
}

recyclingDummies<-dummies(carbonData$Recycling)
cookingDummies<-dummies(carbonData$Cooking_With)


carbonData<-cbind(carbonData,recyclingDummies,cookingDummies)

carbonData$Recycling<- NULL
carbonData$Cooking_With<-NULL

str(carbonData)
'data.frame':   10000 obs. of  29 variables:
 $ Body.Type                    : Factor w/ 4 levels "normal","obese",..: 3 2 3 3 2 3 4 4 3 4 ...
 $ Sex                          : Factor w/ 2 levels "female","male": 1 1 2 2 1 2 1 1 2 1 ...
 $ Diet                         : Factor w/ 4 levels "omnivore","pescatarian",..: 2 4 1 1 4 4 3 3 1 2 ...
 $ How.Often.Shower             : Factor w/ 4 levels "daily","less frequently",..: 1 2 3 4 1 2 2 3 1 1 ...
 $ Heating.Energy.Source        : Factor w/ 4 levels "coal","electricity",..: 1 3 4 4 1 4 4 1 4 4 ...
 $ Transport                    : Factor w/ 3 levels "private","public",..: 2 3 1 3 1 2 1 3 2 2 ...
 $ Vehicle.Type                 : Factor w/ 6 levels "diesel","electric",..: 3 3 6 3 1 3 4 3 3 3 ...
 $ Social.Activity              : Factor w/ 3 levels "never","often",..: 2 2 1 3 2 3 1 3 1 2 ...
 $ Monthly.Grocery.Bill         : num  230 114 138 157 266 144 56 59 200 135 ...
 $ Frequency.of.Traveling.by.Air: Factor w/ 4 levels "frequently","never",..: 1 3 2 3 4 1 3 4 1 3 ...
 $ Vehicle.Monthly.Distance.Km  : num  210 9 2472 74 8457 ...
 $ Waste.Bag.Size               : Factor w/ 4 levels "extra large",..: 2 1 4 3 2 2 3 1 3 1 ...
 $ Waste.Bag.Weekly.Count       : num  4 3 1 3 1 1 4 3 3 1 ...
 $ How.Long.TV.PC.Daily.Hour    : num  7 9 14 20 3 22 9 5 3 8 ...
 $ How.Many.New.Clothes.Monthly : num  26 38 47 5 5 18 11 39 31 23 ...
 $ How.Long.Internet.Daily.Hour : num  1 5 6 7 6 9 19 15 15 18 ...
 $ Energy.efficiency            : Factor w/ 3 levels "No","Sometimes",..: 1 1 2 2 3 2 2 1 3 2 ...
 $ CarbonEmission               : num  7.71 7.55 7.86 6.98 8.46 ...
 $ Metal                        : num  1 1 1 1 0 1 0 0 0 0 ...
 $ Paper                        : num  0 0 0 1 1 1 0 1 0 0 ...
 $ Plastic                      : num  0 0 0 1 0 0 0 1 0 0 ...
 $ Glass                        : num  0 0 0 1 0 1 0 1 1 1 ...
 $ No_Recycling                 : num  0 0 0 0 0 0 1 0 0 0 ...
 $ Stove                        : num  1 1 0 0 0 1 0 1 0 0 ...
 $ Oven                         : num  1 0 1 0 1 1 0 0 0 0 ...
 $ Microwave                    : num  0 1 1 1 0 1 0 1 1 1 ...
 $ Grill                        : num  0 0 0 1 0 0 1 0 1 1 ...
 $ Airfryer                     : num  0 0 0 1 0 0 1 0 1 1 ...
 $ No_Cooking                   : num  0 0 0 0 0 0 0 0 0 0 ...
library(caret)

carbonDataIndexs <- createDataPartition(carbonData$CarbonEmission, p=0.8, list=FALSE)

carbonTrainData<-carbonData[carbonDataIndexs,]
carbonTrainData

carbonTestData<-carbonData[-carbonDataIndexs,]
carbonTestData

carbonTestLabels<-carbonTestData$CarbonEmission

#Benchmark

meanTransport<- carbonTrainData %>% #this will calculate emission per transport type 
  group_by(Transport) %>%
  summarize(meanEmission= mean(CarbonEmission, na.rm = TRUE))

meanTransportTable<-setNames(meanTransport$meanEmission,meanTransport$Transport)  # will store transport levels to its average emission

predictTransport<-function(row){
  transportType<-as.character(row["Transport"])
  if(transportType %in% names(meanTransportTable)){
    return(meanTransportTable[[transportType]])
  }
}

benchmarkPred<-apply(carbonTestData,1,predictTransport) # will apply predictTransport function on the test data


rmse(benchmarkPred,carbonTestData$CarbonEmission)
[1] 0.001769568
MAE(benchmarkPred,carbonTestData$CarbonEmission)
[1] 0.3201579
rsquaredNew<-sum((benchmarkPred-carbonTestData$CarbonEmission)^2)/sum((carbonTestData$CarbonEmission-mean(carbonTestData$CarbonEmission))^2)
rsquaredNew
[1] 0.8108719

#KNN Model

knnModel<-train(CarbonEmission~.,data = carbonTrainData, method="knn", trControl=trainControl(method = "cv", number=5))
knnModel
k-Nearest Neighbors 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6402, 6400, 6401, 6400, 6401 
Resampling results across tuning parameters:

  k  RMSE       Rsquared   MAE      
  5  0.3935491  0.2364802  0.3108153
  7  0.3847708  0.2561085  0.3047360
  9  0.3814251  0.2635529  0.3024925

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 9.
knnPred<-predict(knnModel,newdata = carbonTestData)

rmse=function(x,y){
  return((mean(x-y)^2)^0.5)
}
rmse(knnPred,carbonTestLabels)
[1] 0.008526172
lmModel<-train(CarbonEmission~.,data = carbonTrainData, method="lm", trControl=trainControl(method = "cv", number=5))
lmModel
Linear Regression 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6402, 6402, 6400, 6400, 6400 
Resampling results:

  RMSE       Rsquared   MAE       
  0.1210893  0.9245749  0.08667648

Tuning parameter 'intercept' was held constant at a value of TRUE
summary(lmModel)

Call:
lm(formula = .outcome ~ ., data = dat)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.77857 -0.05514  0.00892  0.06598  0.46663 

Coefficients: (2 not defined because of singularities)
                                                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                     7.421e+00  1.191e-02 623.323  < 2e-16 ***
Body.Typeobese                                  1.878e-01  3.817e-03  49.202  < 2e-16 ***
Body.Typeoverweight                             9.329e-02  3.845e-03  24.262  < 2e-16 ***
Body.Typeunderweight                           -4.985e-02  3.810e-03 -13.084  < 2e-16 ***
Sexmale                                         1.515e-01  2.707e-03  55.959  < 2e-16 ***
Dietpescatarian                                -4.321e-02  3.796e-03 -11.382  < 2e-16 ***
Dietvegan                                      -7.942e-02  3.830e-03 -20.737  < 2e-16 ***
Dietvegetarian                                 -6.956e-02  3.845e-03 -18.091  < 2e-16 ***
`How.Often.Showerless frequently`              -1.128e-02  3.794e-03  -2.972  0.00296 ** 
`How.Often.Showermore frequently`               1.626e-02  3.821e-03   4.255 2.11e-05 ***
`How.Often.Showertwice a day`                   9.034e-03  3.811e-03   2.371  0.01778 *  
Heating.Energy.Sourceelectricity               -2.227e-01  3.800e-03 -58.619  < 2e-16 ***
`Heating.Energy.Sourcenatural gas`             -9.763e-02  3.845e-03 -25.392  < 2e-16 ***
Heating.Energy.Sourcewood                      -9.692e-02  3.830e-03 -25.306  < 2e-16 ***
Transportpublic                                -1.955e-01  6.729e-03 -29.057  < 2e-16 ***
`Transportwalk/bicycle`                        -1.719e-01  7.130e-03 -24.114  < 2e-16 ***
Vehicle.Typeelectric                           -5.084e-01  7.470e-03 -68.059  < 2e-16 ***
Vehicle.TypeFuelEfficient                              NA         NA      NA       NA    
Vehicle.Typehybrid                             -1.313e-01  7.552e-03 -17.386  < 2e-16 ***
Vehicle.Typelpg                                 4.272e-02  7.481e-03   5.710 1.17e-08 ***
Vehicle.Typepetrol                              2.001e-01  7.577e-03  26.412  < 2e-16 ***
Social.Activityoften                            8.611e-02  3.296e-03  26.128  < 2e-16 ***
Social.Activitysometimes                        4.219e-02  3.311e-03  12.744  < 2e-16 ***
Monthly.Grocery.Bill                            4.704e-04  1.874e-05  25.103  < 2e-16 ***
Frequency.of.Traveling.by.Airnever             -3.609e-01  3.835e-03 -94.111  < 2e-16 ***
Frequency.of.Traveling.by.Airrarely            -2.434e-01  3.829e-03 -63.570  < 2e-16 ***
`Frequency.of.Traveling.by.Airvery frequently`  2.669e-01  3.810e-03  70.052  < 2e-16 ***
Vehicle.Monthly.Distance.Km                     6.660e-05  8.021e-07  83.036  < 2e-16 ***
Waste.Bag.Sizelarge                            -6.449e-02  3.816e-03 -16.898  < 2e-16 ***
Waste.Bag.Sizemedium                           -1.297e-01  3.841e-03 -33.763  < 2e-16 ***
Waste.Bag.Sizesmall                            -2.006e-01  3.828e-03 -52.405  < 2e-16 ***
Waste.Bag.Weekly.Count                          4.115e-02  6.792e-04  60.592  < 2e-16 ***
How.Long.TV.PC.Daily.Hour                       1.192e-03  1.900e-04   6.272 3.74e-10 ***
How.Many.New.Clothes.Monthly                    7.133e-03  9.174e-05  77.746  < 2e-16 ***
How.Long.Internet.Daily.Hour                    4.046e-03  1.853e-04  21.829  < 2e-16 ***
Energy.efficiencySometimes                     -1.997e-02  3.304e-03  -6.043 1.58e-09 ***
Energy.efficiencyYes                           -3.255e-02  3.353e-03  -9.708  < 2e-16 ***
Metal                                          -7.208e-02  2.839e-03 -25.394  < 2e-16 ***
Paper                                          -7.743e-02  2.835e-03 -27.309  < 2e-16 ***
Plastic                                        -3.004e-02  2.834e-03 -10.602  < 2e-16 ***
Glass                                          -5.130e-02  2.831e-03 -18.117  < 2e-16 ***
No_Recycling                                   -1.334e-02  6.409e-03  -2.081  0.03749 *  
Stove                                           1.266e-02  2.825e-03   4.482 7.49e-06 ***
Oven                                            1.488e-02  2.829e-03   5.260 1.47e-07 ***
Microwave                                       5.386e-03  2.822e-03   1.909  0.05632 .  
Grill                                           1.820e-02  2.817e-03   6.458 1.12e-10 ***
Airfryer                                               NA         NA      NA       NA    
No_Cooking                                     -1.236e-02  6.608e-03  -1.870  0.06150 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1207 on 7955 degrees of freedom
Multiple R-squared:  0.9256,    Adjusted R-squared:  0.9252 
F-statistic:  2199 on 45 and 7955 DF,  p-value: < 2.2e-16
stepwiseModel<-train(CarbonEmission~.,data = carbonTrainData, method="leapBackward", trControl=trainControl(method = "cv", number=5))
Warning: 2  linear dependencies found
Reordering variables and trying again:
Warning: 2  linear dependencies found
Reordering variables and trying again:
Warning: 2  linear dependencies found
Reordering variables and trying again:
Warning: 2  linear dependencies found
Reordering variables and trying again:
Warning: 2  linear dependencies found
Reordering variables and trying again:
Warning: 2  linear dependencies found
Reordering variables and trying again:
stepwiseModel
Linear Regression with Backwards Selection 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6401, 6400, 6402, 6402, 6399 
Resampling results across tuning parameters:

  nvmax  RMSE       Rsquared   MAE      
  2      0.3782825  0.2651774  0.3006870
  3      0.3607228  0.3315503  0.2868409
  4      0.3471377  0.3809492  0.2731293

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was nvmax = 4.
summary(stepwiseModel$finalModel)
Subset selection object
47 Variables  (and intercept)
                                             Forced in Forced out
Body.Typeobese                                   FALSE      FALSE
Body.Typeoverweight                              FALSE      FALSE
Body.Typeunderweight                             FALSE      FALSE
Sexmale                                          FALSE      FALSE
Dietpescatarian                                  FALSE      FALSE
Dietvegan                                        FALSE      FALSE
Dietvegetarian                                   FALSE      FALSE
How.Often.Showerless frequently                  FALSE      FALSE
How.Often.Showermore frequently                  FALSE      FALSE
How.Often.Showertwice a day                      FALSE      FALSE
Heating.Energy.Sourceelectricity                 FALSE      FALSE
Heating.Energy.Sourcenatural gas                 FALSE      FALSE
Heating.Energy.Sourcewood                        FALSE      FALSE
Transportpublic                                  FALSE      FALSE
Transportwalk/bicycle                            FALSE      FALSE
Vehicle.Typeelectric                             FALSE      FALSE
Vehicle.Typehybrid                               FALSE      FALSE
Vehicle.Typelpg                                  FALSE      FALSE
Vehicle.Typepetrol                               FALSE      FALSE
Social.Activityoften                             FALSE      FALSE
Social.Activitysometimes                         FALSE      FALSE
Monthly.Grocery.Bill                             FALSE      FALSE
Frequency.of.Traveling.by.Airnever               FALSE      FALSE
Frequency.of.Traveling.by.Airrarely              FALSE      FALSE
Frequency.of.Traveling.by.Airvery frequently     FALSE      FALSE
Vehicle.Monthly.Distance.Km                      FALSE      FALSE
Waste.Bag.Sizelarge                              FALSE      FALSE
Waste.Bag.Sizemedium                             FALSE      FALSE
Waste.Bag.Sizesmall                              FALSE      FALSE
Waste.Bag.Weekly.Count                           FALSE      FALSE
How.Long.TV.PC.Daily.Hour                        FALSE      FALSE
How.Many.New.Clothes.Monthly                     FALSE      FALSE
How.Long.Internet.Daily.Hour                     FALSE      FALSE
Energy.efficiencySometimes                       FALSE      FALSE
Energy.efficiencyYes                             FALSE      FALSE
Metal                                            FALSE      FALSE
Paper                                            FALSE      FALSE
Plastic                                          FALSE      FALSE
Glass                                            FALSE      FALSE
No_Recycling                                     FALSE      FALSE
Stove                                            FALSE      FALSE
Oven                                             FALSE      FALSE
Microwave                                        FALSE      FALSE
Grill                                            FALSE      FALSE
No_Cooking                                       FALSE      FALSE
Vehicle.TypeFuelEfficient                        FALSE      FALSE
Airfryer                                         FALSE      FALSE
1 subsets of each size up to 5
Selection Algorithm: backward
         Body.Typeobese Body.Typeoverweight Body.Typeunderweight Sexmale Dietpescatarian Dietvegan Dietvegetarian How.Often.Showerless frequently
1  ( 1 ) " "            " "                 " "                  " "     " "             " "       " "            " "                            
2  ( 1 ) " "            " "                 " "                  " "     " "             " "       " "            " "                            
3  ( 1 ) " "            " "                 " "                  " "     " "             " "       " "            " "                            
4  ( 1 ) " "            " "                 " "                  " "     " "             " "       " "            " "                            
5  ( 1 ) " "            " "                 " "                  " "     " "             " "       " "            " "                            
         How.Often.Showermore frequently How.Often.Showertwice a day Heating.Energy.Sourceelectricity Heating.Energy.Sourcenatural gas
1  ( 1 ) " "                             " "                         " "                              " "                             
2  ( 1 ) " "                             " "                         " "                              " "                             
3  ( 1 ) " "                             " "                         " "                              " "                             
4  ( 1 ) " "                             " "                         " "                              " "                             
5  ( 1 ) " "                             " "                         " "                              " "                             
         Heating.Energy.Sourcewood Transportpublic Transportwalk/bicycle Vehicle.Typeelectric Vehicle.TypeFuelEfficient Vehicle.Typehybrid Vehicle.Typelpg
1  ( 1 ) " "                       " "             " "                   " "                  " "                       " "                " "            
2  ( 1 ) " "                       " "             " "                   " "                  " "                       " "                " "            
3  ( 1 ) " "                       " "             " "                   "*"                  " "                       " "                " "            
4  ( 1 ) " "                       " "             " "                   "*"                  " "                       " "                " "            
5  ( 1 ) " "                       " "             " "                   "*"                  " "                       " "                " "            
         Vehicle.Typepetrol Social.Activityoften Social.Activitysometimes Monthly.Grocery.Bill Frequency.of.Traveling.by.Airnever
1  ( 1 ) " "                " "                  " "                      " "                  " "                               
2  ( 1 ) " "                " "                  " "                      " "                  " "                               
3  ( 1 ) " "                " "                  " "                      " "                  " "                               
4  ( 1 ) " "                " "                  " "                      " "                  " "                               
5  ( 1 ) " "                " "                  " "                      " "                  "*"                               
         Frequency.of.Traveling.by.Airrarely Frequency.of.Traveling.by.Airvery frequently Vehicle.Monthly.Distance.Km Waste.Bag.Sizelarge
1  ( 1 ) " "                                 " "                                          "*"                         " "                
2  ( 1 ) " "                                 "*"                                          "*"                         " "                
3  ( 1 ) " "                                 "*"                                          "*"                         " "                
4  ( 1 ) " "                                 "*"                                          "*"                         " "                
5  ( 1 ) " "                                 "*"                                          "*"                         " "                
         Waste.Bag.Sizemedium Waste.Bag.Sizesmall Waste.Bag.Weekly.Count How.Long.TV.PC.Daily.Hour How.Many.New.Clothes.Monthly How.Long.Internet.Daily.Hour
1  ( 1 ) " "                  " "                 " "                    " "                       " "                          " "                         
2  ( 1 ) " "                  " "                 " "                    " "                       " "                          " "                         
3  ( 1 ) " "                  " "                 " "                    " "                       " "                          " "                         
4  ( 1 ) " "                  " "                 " "                    " "                       "*"                          " "                         
5  ( 1 ) " "                  " "                 " "                    " "                       "*"                          " "                         
         Energy.efficiencySometimes Energy.efficiencyYes Metal Paper Plastic Glass No_Recycling Stove Oven Microwave Grill Airfryer No_Cooking
1  ( 1 ) " "                        " "                  " "   " "   " "     " "   " "          " "   " "  " "       " "   " "      " "       
2  ( 1 ) " "                        " "                  " "   " "   " "     " "   " "          " "   " "  " "       " "   " "      " "       
3  ( 1 ) " "                        " "                  " "   " "   " "     " "   " "          " "   " "  " "       " "   " "      " "       
4  ( 1 ) " "                        " "                  " "   " "   " "     " "   " "          " "   " "  " "       " "   " "      " "       
5  ( 1 ) " "                        " "                  " "   " "   " "     " "   " "          " "   " "  " "       " "   " "      " "       

#Lasso Model

library(glmnet)
set.seed(1)
lassoModel<-train(CarbonEmission~.,data = carbonTrainData,method="glmnet",trControl= trainControl(method = "cv", number=5), tuneGrid = expand.grid(alpha=1, lambda=10^seq(-3,3,length=100))) 
Warning: There were missing values in resampled performance measures.
lassoModel
glmnet 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results across tuning parameters:

  lambda        RMSE       Rsquared   MAE       
  1.000000e-03  0.1214973  0.9245000  0.08687629
  1.149757e-03  0.1215854  0.9244221  0.08694724
  1.321941e-03  0.1217004  0.9243204  0.08703862
  1.519911e-03  0.1218552  0.9241830  0.08716368
  1.747528e-03  0.1220575  0.9240036  0.08732665
  2.009233e-03  0.1223224  0.9237676  0.08754325
  2.310130e-03  0.1226701  0.9234560  0.08783140
  2.656088e-03  0.1231219  0.9230482  0.08820983
  3.053856e-03  0.1237161  0.9225053  0.08870755
  3.511192e-03  0.1244955  0.9217826  0.08936085
  4.037017e-03  0.1255163  0.9208163  0.09024974
  4.641589e-03  0.1268402  0.9195356  0.09140592
  5.336699e-03  0.1285144  0.9178867  0.09289531
  6.135907e-03  0.1306158  0.9157707  0.09473980
  7.054802e-03  0.1331601  0.9131792  0.09695460
  8.111308e-03  0.1363159  0.9098632  0.09969136
  9.326033e-03  0.1400410  0.9058695  0.10288492
  1.072267e-02  0.1440491  0.9016682  0.10627227
  1.232847e-02  0.1488871  0.8964030  0.11039431
  1.417474e-02  0.1542083  0.8906494  0.11481353
  1.629751e-02  0.1592735  0.8859180  0.11878771
  1.873817e-02  0.1653805  0.8799604  0.12357893
  2.154435e-02  0.1729973  0.8717956  0.12971927
  2.477076e-02  0.1824785  0.8603090  0.13741038
  2.848036e-02  0.1928623  0.8473535  0.14581335
  3.274549e-02  0.2039627  0.8334474  0.15485133
  3.764936e-02  0.2162439  0.8174807  0.16493342
  4.328761e-02  0.2298441  0.7988964  0.17609103
  4.977024e-02  0.2463958  0.7711065  0.18966157
  5.722368e-02  0.2665106  0.7278567  0.20621242
  6.579332e-02  0.2890668  0.6679143  0.22482408
  7.564633e-02  0.3108364  0.6023591  0.24281317
  8.697490e-02  0.3269388  0.5605917  0.25621639
  1.000000e-01  0.3417624  0.5270994  0.26858359
  1.149757e-01  0.3565354  0.4957222  0.28104235
  1.321941e-01  0.3710455  0.4761545  0.29352937
  1.519911e-01  0.3872305  0.4578507  0.30762038
  1.747528e-01  0.4061797  0.4320649  0.32419438
  2.009233e-01  0.4274621  0.3153036  0.34240298
  2.310130e-01  0.4411191        NaN  0.35246969
  2.656088e-01  0.4411191        NaN  0.35246969
  3.053856e-01  0.4411191        NaN  0.35246969
  3.511192e-01  0.4411191        NaN  0.35246969
  4.037017e-01  0.4411191        NaN  0.35246969
  4.641589e-01  0.4411191        NaN  0.35246969
  5.336699e-01  0.4411191        NaN  0.35246969
  6.135907e-01  0.4411191        NaN  0.35246969
  7.054802e-01  0.4411191        NaN  0.35246969
  8.111308e-01  0.4411191        NaN  0.35246969
  9.326033e-01  0.4411191        NaN  0.35246969
  1.072267e+00  0.4411191        NaN  0.35246969
  1.232847e+00  0.4411191        NaN  0.35246969
  1.417474e+00  0.4411191        NaN  0.35246969
  1.629751e+00  0.4411191        NaN  0.35246969
  1.873817e+00  0.4411191        NaN  0.35246969
  2.154435e+00  0.4411191        NaN  0.35246969
  2.477076e+00  0.4411191        NaN  0.35246969
  2.848036e+00  0.4411191        NaN  0.35246969
  3.274549e+00  0.4411191        NaN  0.35246969
  3.764936e+00  0.4411191        NaN  0.35246969
  4.328761e+00  0.4411191        NaN  0.35246969
  4.977024e+00  0.4411191        NaN  0.35246969
  5.722368e+00  0.4411191        NaN  0.35246969
  6.579332e+00  0.4411191        NaN  0.35246969
  7.564633e+00  0.4411191        NaN  0.35246969
  8.697490e+00  0.4411191        NaN  0.35246969
  1.000000e+01  0.4411191        NaN  0.35246969
  1.149757e+01  0.4411191        NaN  0.35246969
  1.321941e+01  0.4411191        NaN  0.35246969
  1.519911e+01  0.4411191        NaN  0.35246969
  1.747528e+01  0.4411191        NaN  0.35246969
  2.009233e+01  0.4411191        NaN  0.35246969
  2.310130e+01  0.4411191        NaN  0.35246969
  2.656088e+01  0.4411191        NaN  0.35246969
  3.053856e+01  0.4411191        NaN  0.35246969
  3.511192e+01  0.4411191        NaN  0.35246969
  4.037017e+01  0.4411191        NaN  0.35246969
  4.641589e+01  0.4411191        NaN  0.35246969
  5.336699e+01  0.4411191        NaN  0.35246969
  6.135907e+01  0.4411191        NaN  0.35246969
  7.054802e+01  0.4411191        NaN  0.35246969
  8.111308e+01  0.4411191        NaN  0.35246969
  9.326033e+01  0.4411191        NaN  0.35246969
  1.072267e+02  0.4411191        NaN  0.35246969
  1.232847e+02  0.4411191        NaN  0.35246969
  1.417474e+02  0.4411191        NaN  0.35246969
  1.629751e+02  0.4411191        NaN  0.35246969
  1.873817e+02  0.4411191        NaN  0.35246969
  2.154435e+02  0.4411191        NaN  0.35246969
  2.477076e+02  0.4411191        NaN  0.35246969
  2.848036e+02  0.4411191        NaN  0.35246969
  3.274549e+02  0.4411191        NaN  0.35246969
  3.764936e+02  0.4411191        NaN  0.35246969
  4.328761e+02  0.4411191        NaN  0.35246969
  4.977024e+02  0.4411191        NaN  0.35246969
  5.722368e+02  0.4411191        NaN  0.35246969
  6.579332e+02  0.4411191        NaN  0.35246969
  7.564633e+02  0.4411191        NaN  0.35246969
  8.697490e+02  0.4411191        NaN  0.35246969
  1.000000e+03  0.4411191        NaN  0.35246969

Tuning parameter 'alpha' was held constant at a value of 1
RMSE was used to select the optimal model using the smallest value.
The final values used for the model were alpha = 1 and lambda = 0.001.
lassoLambda<-lassoModel$bestTune$lambda
lassoPredictor<- setdiff(names(carbonTrainData),"CarbonEmission")
lassoFinalModel<-glmnet(as.matrix(carbonTrainData[,lassoPredictor]),carbonTrainData[,"CarbonEmission"],alpha = 1,lambda = lassoLambda, family = "gaussian")
Warning: NAs introduced by coercion
coeff<-coef(lassoFinalModel)
coeff
29 x 1 sparse Matrix of class "dgCMatrix"
                                         s0
(Intercept)                    7.077965e+00
Body.Type                      .           
Sex                            .           
Diet                           .           
How.Often.Shower               .           
Heating.Energy.Source          .           
Transport                      .           
Vehicle.Type                   .           
Social.Activity                .           
Monthly.Grocery.Bill           4.990372e-04
Frequency.of.Traveling.by.Air  .           
Vehicle.Monthly.Distance.Km    7.930046e-05
Waste.Bag.Size                 .           
Waste.Bag.Weekly.Count         3.966627e-02
How.Long.TV.PC.Daily.Hour      6.828507e-04
How.Many.New.Clothes.Monthly   6.954544e-03
How.Long.Internet.Daily.Hour   3.466329e-03
Energy.efficiency              .           
Metal                         -6.157385e-02
Paper                         -7.169971e-02
Plastic                       -3.204086e-02
Glass                         -3.772139e-02
No_Recycling                   1.536001e-02
Stove                          7.934277e-03
Oven                           2.805123e-02
Microwave                      7.754147e-04
Grill                          7.365362e-03
Airfryer                       6.722616e-16
No_Cooking                    -1.394166e-02
zeroCoeff<-coeff==0
zeroCoeff
29 x 1 Matrix of class "lgeMatrix"
                                 s0
(Intercept)                   FALSE
Body.Type                      TRUE
Sex                            TRUE
Diet                           TRUE
How.Often.Shower               TRUE
Heating.Energy.Source          TRUE
Transport                      TRUE
Vehicle.Type                   TRUE
Social.Activity                TRUE
Monthly.Grocery.Bill          FALSE
Frequency.of.Traveling.by.Air  TRUE
Vehicle.Monthly.Distance.Km   FALSE
Waste.Bag.Size                 TRUE
Waste.Bag.Weekly.Count        FALSE
How.Long.TV.PC.Daily.Hour     FALSE
How.Many.New.Clothes.Monthly  FALSE
How.Long.Internet.Daily.Hour  FALSE
Energy.efficiency              TRUE
Metal                         FALSE
Paper                         FALSE
Plastic                       FALSE
Glass                         FALSE
No_Recycling                  FALSE
Stove                         FALSE
Oven                          FALSE
Microwave                     FALSE
Grill                         FALSE
Airfryer                      FALSE
No_Cooking                    FALSE
plot(lassoModel)

#Ridge Model

set.seed(1)
ridgeModel<-train(CarbonEmission~.,data = carbonTrainData,method="glmnet",trControl= trainControl(method = "cv", number=5), tuneGrid = expand.grid(alpha=0, lambda=10^seq(-3,3,length=100))) 
Warning: There were missing values in resampled performance measures.
ridgeModel
glmnet 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results across tuning parameters:

  lambda        RMSE       Rsquared   MAE       
  1.000000e-03  0.1236296  0.9235380  0.08856450
  1.149757e-03  0.1236296  0.9235380  0.08856450
  1.321941e-03  0.1236296  0.9235380  0.08856450
  1.519911e-03  0.1236296  0.9235380  0.08856450
  1.747528e-03  0.1236296  0.9235380  0.08856450
  2.009233e-03  0.1236296  0.9235380  0.08856450
  2.310130e-03  0.1236296  0.9235380  0.08856450
  2.656088e-03  0.1236296  0.9235380  0.08856450
  3.053856e-03  0.1236296  0.9235380  0.08856450
  3.511192e-03  0.1236296  0.9235380  0.08856450
  4.037017e-03  0.1236296  0.9235380  0.08856450
  4.641589e-03  0.1236296  0.9235380  0.08856450
  5.336699e-03  0.1236296  0.9235380  0.08856450
  6.135907e-03  0.1236296  0.9235380  0.08856450
  7.054802e-03  0.1236296  0.9235380  0.08856450
  8.111308e-03  0.1236296  0.9235380  0.08856450
  9.326033e-03  0.1236296  0.9235380  0.08856450
  1.072267e-02  0.1236296  0.9235380  0.08856450
  1.232847e-02  0.1236296  0.9235380  0.08856450
  1.417474e-02  0.1236296  0.9235380  0.08856450
  1.629751e-02  0.1236296  0.9235380  0.08856450
  1.873817e-02  0.1236296  0.9235380  0.08856450
  2.154435e-02  0.1236296  0.9235380  0.08856450
  2.477076e-02  0.1240623  0.9233222  0.08891353
  2.848036e-02  0.1248547  0.9229254  0.08955337
  3.274549e-02  0.1258460  0.9224294  0.09035832
  3.764936e-02  0.1270691  0.9218201  0.09134409
  4.328761e-02  0.1285767  0.9210687  0.09255793
  4.977024e-02  0.1304045  0.9201612  0.09404563
  5.722368e-02  0.1326181  0.9190609  0.09587905
  6.579332e-02  0.1352510  0.9177554  0.09805509
  7.564633e-02  0.1383809  0.9161965  0.10064929
  8.697490e-02  0.1420236  0.9143856  0.10368213
  1.000000e-01  0.1462655  0.9122644  0.10725472
  1.149757e-01  0.1510922  0.9098562  0.11134292
  1.321941e-01  0.1566022  0.9070774  0.11604694
  1.519911e-01  0.1627365  0.9039836  0.12127662
  1.747528e-01  0.1695983  0.9004756  0.12712566
  2.009233e-01  0.1770753  0.8966475  0.13355774
  2.310130e-01  0.1852805  0.8923696  0.14060318
  2.656088e-01  0.1940398  0.8877770  0.14808518
  3.053856e-01  0.2034777  0.8827064  0.15611211
  3.511192e-01  0.2133536  0.8773463  0.16452594
  4.037017e-01  0.2238071  0.8714935  0.17339893
  4.641589e-01  0.2345317  0.8653986  0.18248118
  5.336699e-01  0.2456875  0.8588186  0.19188157
  6.135907e-01  0.2569113  0.8520765  0.20127888
  7.054802e-01  0.2683892  0.8448914  0.21087395
  8.111308e-01  0.2797186  0.8376721  0.22034450
  9.326033e-01  0.2911145  0.8300828  0.22982984
  1.072267e+00  0.3021559  0.8226070  0.23897247
  1.232847e+00  0.3130907  0.8148905  0.24801865
  1.417474e+00  0.3235011  0.8074583  0.25660788
  1.629751e+00  0.3336608  0.7999214  0.26496175
  1.873817e+00  0.3431761  0.7928249  0.27275909
  2.154435e+00  0.3523368  0.7857526  0.28027521
  2.477076e+00  0.3607877  0.7792359  0.28719687
  2.848036e+00  0.3688233  0.7728451  0.29377210
  3.274549e+00  0.3761349  0.7670706  0.29974973
  3.764936e+00  0.3830101  0.7614879  0.30535400
  4.328761e+00  0.3891895  0.7565288  0.31038294
  4.977024e+00  0.3949431  0.7517928  0.31506421
  5.722368e+00  0.4000593  0.7476450  0.31922348
  6.579332e+00  0.4047823  0.7437226  0.32305636
  7.564633e+00  0.4089439  0.7403284  0.32642816
  8.697490e+00  0.4127580  0.7371445  0.32952218
  1.000000e+01  0.4160930  0.7344155  0.33223076
  1.149757e+01  0.4191313  0.7318718  0.33469680
  1.321941e+01  0.4217713  0.7297079  0.33683915
  1.519911e+01  0.4241648  0.7277011  0.33878063
  1.747528e+01  0.4262338  0.7260039  0.34045671
  2.009233e+01  0.4281024  0.7244361  0.34196880
  2.310130e+01  0.4297111  0.7231162  0.34326913
  2.656088e+01  0.4311594  0.7219006  0.34443845
  3.053856e+01  0.4324024  0.7208809  0.34544178
  3.511192e+01  0.4335188  0.7199439  0.34634248
  4.037017e+01  0.4344745  0.7191601  0.34711333
  4.641589e+01  0.4353311  0.7184411  0.34780407
  5.336699e+01  0.4360631  0.7178408  0.34839424
  6.135907e+01  0.4367183  0.7172914  0.34892252
  7.054802e+01  0.4372773  0.7168332  0.34937326
  8.111308e+01  0.4377771  0.7164137  0.34977623
  9.326033e+01  0.4382030  0.7160645  0.35011968
  1.072267e+02  0.4385835  0.7157452  0.35042640
  1.232847e+02  0.4389075  0.7154796  0.35068750
  1.417474e+02  0.4391967  0.7152369  0.35092063
  1.629751e+02  0.4394428  0.7150352  0.35111896
  1.873817e+02  0.4396624  0.7148510  0.35129595
  2.154435e+02  0.4404229  0.7147417  0.35190859
  2.477076e+02  0.4411191        NaN  0.35246969
  2.848036e+02  0.4411191        NaN  0.35246969
  3.274549e+02  0.4411191        NaN  0.35246969
  3.764936e+02  0.4411191        NaN  0.35246969
  4.328761e+02  0.4411191        NaN  0.35246969
  4.977024e+02  0.4411191        NaN  0.35246969
  5.722368e+02  0.4411191        NaN  0.35246969
  6.579332e+02  0.4411191        NaN  0.35246969
  7.564633e+02  0.4411191        NaN  0.35246969
  8.697490e+02  0.4411191        NaN  0.35246969
  1.000000e+03  0.4411191        NaN  0.35246969

Tuning parameter 'alpha' was held constant at a value of 0
RMSE was used to select the optimal model using the smallest value.
The final values used for the model were alpha = 0 and lambda = 0.02154435.
ridgeLambda<-ridgeModel$bestTune$lambda
ridgePredictor<- setdiff(names(carbonTrainData),"CarbonEmission")
ridgeFinalModel<-glmnet(as.matrix(carbonTrainData[,ridgePredictor]),carbonTrainData[,"CarbonEmission"],alpha = 1,lambda = ridgeLambda, family = "gaussian")
Warning: NAs introduced by coercion
ridgeFinalModel

Call:  glmnet(x = as.matrix(carbonTrainData[, ridgePredictor]), y = carbonTrainData[,      "CarbonEmission"], family = "gaussian", alpha = 1, lambda = ridgeLambda) 

  Df  %Dev  Lambda
1  8 35.92 0.02154
plot(ridgeModel)

#Elastic Net Model

set.seed(1)
enetModel<-train(CarbonEmission~., data = carbonTrainData, method = "glmnet", trControl=trainControl(method="cv",number=5,preProc="nzv"),tuneGrid=expand.grid(alpha=seq(0,1,length=10),lambda=10^seq(-3,1,length=100)))
Warning: There were missing values in resampled performance measures.
enetModel
glmnet 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results across tuning parameters:

  alpha      lambda        RMSE       Rsquared   MAE       
  0.0000000   0.001000000  0.1236296  0.9235380  0.08856450
  0.0000000   0.001097499  0.1236296  0.9235380  0.08856450
  0.0000000   0.001204504  0.1236296  0.9235380  0.08856450
  0.0000000   0.001321941  0.1236296  0.9235380  0.08856450
  0.0000000   0.001450829  0.1236296  0.9235380  0.08856450
  0.0000000   0.001592283  0.1236296  0.9235380  0.08856450
  0.0000000   0.001747528  0.1236296  0.9235380  0.08856450
  0.0000000   0.001917910  0.1236296  0.9235380  0.08856450
  0.0000000   0.002104904  0.1236296  0.9235380  0.08856450
  0.0000000   0.002310130  0.1236296  0.9235380  0.08856450
  0.0000000   0.002535364  0.1236296  0.9235380  0.08856450
  0.0000000   0.002782559  0.1236296  0.9235380  0.08856450
  0.0000000   0.003053856  0.1236296  0.9235380  0.08856450
  0.0000000   0.003351603  0.1236296  0.9235380  0.08856450
  0.0000000   0.003678380  0.1236296  0.9235380  0.08856450
  0.0000000   0.004037017  0.1236296  0.9235380  0.08856450
  0.0000000   0.004430621  0.1236296  0.9235380  0.08856450
  0.0000000   0.004862602  0.1236296  0.9235380  0.08856450
  0.0000000   0.005336699  0.1236296  0.9235380  0.08856450
  0.0000000   0.005857021  0.1236296  0.9235380  0.08856450
  0.0000000   0.006428073  0.1236296  0.9235380  0.08856450
  0.0000000   0.007054802  0.1236296  0.9235380  0.08856450
  0.0000000   0.007742637  0.1236296  0.9235380  0.08856450
  0.0000000   0.008497534  0.1236296  0.9235380  0.08856450
  0.0000000   0.009326033  0.1236296  0.9235380  0.08856450
  0.0000000   0.010235310  0.1236296  0.9235380  0.08856450
  0.0000000   0.011233240  0.1236296  0.9235380  0.08856450
  0.0000000   0.012328467  0.1236296  0.9235380  0.08856450
  0.0000000   0.013530478  0.1236296  0.9235380  0.08856450
  0.0000000   0.014849683  0.1236296  0.9235380  0.08856450
  0.0000000   0.016297508  0.1236296  0.9235380  0.08856450
  0.0000000   0.017886495  0.1236296  0.9235380  0.08856450
  0.0000000   0.019630407  0.1236296  0.9235380  0.08856450
  0.0000000   0.021544347  0.1236296  0.9235380  0.08856450
  0.0000000   0.023644894  0.1238344  0.9234369  0.08873071
  0.0000000   0.025950242  0.1243062  0.9232001  0.08910784
  0.0000000   0.028480359  0.1248547  0.9229254  0.08955337
  0.0000000   0.031257158  0.1254902  0.9226076  0.09007142
  0.0000000   0.034304693  0.1262242  0.9222412  0.09066357
  0.0000000   0.037649358  0.1270691  0.9218201  0.09134409
  0.0000000   0.041320124  0.1280380  0.9213377  0.09212398
  0.0000000   0.045348785  0.1291449  0.9207872  0.09301807
  0.0000000   0.049770236  0.1304045  0.9201612  0.09404563
  0.0000000   0.054622772  0.1318313  0.9194531  0.09522700
  0.0000000   0.059948425  0.1334415  0.9186540  0.09656021
  0.0000000   0.065793322  0.1352510  0.9177554  0.09805509
  0.0000000   0.072208090  0.1372745  0.9167500  0.09973249
  0.0000000   0.079248290  0.1395276  0.9156288  0.10160035
  0.0000000   0.086974900  0.1420236  0.9143856  0.10368213
  0.0000000   0.095454846  0.1447753  0.9130136  0.10599583
  0.0000000   0.104761575  0.1477942  0.9115069  0.10854740
  0.0000000   0.114975700  0.1510922  0.9098562  0.11134292
  0.0000000   0.126185688  0.1546780  0.9080552  0.11439741
  0.0000000   0.138488637  0.1585579  0.9060991  0.11771529
  0.0000000   0.151991108  0.1627365  0.9039836  0.12127662
  0.0000000   0.166810054  0.1672161  0.9017050  0.12509205
  0.0000000   0.183073828  0.1719965  0.8992602  0.12918270
  0.0000000   0.200923300  0.1770753  0.8966475  0.13355774
  0.0000000   0.220513074  0.1824476  0.8938641  0.13816952
  0.0000000   0.242012826  0.1881059  0.8909074  0.14302527
  0.0000000   0.265608778  0.1940398  0.8877770  0.14808518
  0.0000000   0.291505306  0.2002365  0.8844729  0.15335458
  0.0000000   0.319926714  0.2066805  0.8809955  0.15884261
  0.0000000   0.351119173  0.2133536  0.8773463  0.16452594
  0.0000000   0.385352859  0.2202354  0.8735277  0.17037196
  0.0000000   0.422924287  0.2273031  0.8695434  0.17636285
  0.0000000   0.464158883  0.2345317  0.8653986  0.18248118
  0.0000000   0.509413801  0.2418949  0.8610998  0.18869095
  0.0000000   0.559081018  0.2493644  0.8566556  0.19496905
  0.0000000   0.613590727  0.2569113  0.8520765  0.20127888
  0.0000000   0.673415066  0.2645058  0.8473748  0.20762461
  0.0000000   0.739072203  0.2721184  0.8425692  0.21399504
  0.0000000   0.811130831  0.2797186  0.8376721  0.22034450
  0.0000000   0.890215085  0.2872768  0.8326965  0.22664091
  0.0000000   0.977009957  0.2947649  0.8276676  0.23285533
  0.0000000   1.072267222  0.3021559  0.8226070  0.23897247
  0.0000000   1.176811952  0.3094244  0.8175368  0.24498596
  0.0000000   1.291549665  0.3165466  0.8124797  0.25087384
  0.0000000   1.417474163  0.3235011  0.8074583  0.25660788
  0.0000000   1.555676144  0.3302684  0.8024947  0.26217619
  0.0000000   1.707352647  0.3368316  0.7976103  0.26756072
  0.0000000   1.873817423  0.3431761  0.7928249  0.27275909
  0.0000000   2.056512308  0.3492896  0.7881569  0.27777537
  0.0000000   2.257019720  0.3551626  0.7836225  0.28259195
  0.0000000   2.477076356  0.3607877  0.7792359  0.28719687
  0.0000000   2.718588243  0.3661597  0.7750090  0.29159314
  0.0000000   2.983647240  0.3712757  0.7709515  0.29577793
  0.0000000   3.274549163  0.3761349  0.7670706  0.29974973
  0.0000000   3.593813664  0.3807383  0.7633715  0.30350446
  0.0000000   3.944206059  0.3850884  0.7598572  0.30704491
  0.0000000   4.328761281  0.3891895  0.7565288  0.31038294
  0.0000000   4.750810162  0.3930472  0.7533859  0.31352223
  0.0000000   5.214008288  0.3966679  0.7504259  0.31646616
  0.0000000   5.722367659  0.4000593  0.7476450  0.31922348
  0.0000000   6.280291442  0.4032297  0.7450389  0.32179736
  0.0000000   6.892612104  0.4061881  0.7426021  0.32419540
  0.0000000   7.564633276  0.4089439  0.7403284  0.32642816
  0.0000000   8.302175681  0.4115067  0.7382109  0.32850613
  0.0000000   9.111627561  0.4138865  0.7362424  0.33043876
  0.0000000  10.000000000  0.4160930  0.7344155  0.33223076
  0.1111111   0.001000000  0.1212244  0.9247599  0.08667484
  0.1111111   0.001097499  0.1212244  0.9247599  0.08667484
  0.1111111   0.001204504  0.1212244  0.9247599  0.08667484
  0.1111111   0.001321941  0.1212244  0.9247599  0.08667484
  0.1111111   0.001450829  0.1212253  0.9247594  0.08667531
  0.1111111   0.001592283  0.1212316  0.9247551  0.08667904
  0.1111111   0.001747528  0.1212391  0.9247500  0.08668362
  0.1111111   0.001917910  0.1212477  0.9247444  0.08668905
  0.1111111   0.002104904  0.1212576  0.9247380  0.08669519
  0.1111111   0.002310130  0.1212708  0.9247287  0.08670357
  0.1111111   0.002535364  0.1212851  0.9247200  0.08671278
  0.1111111   0.002782559  0.1213038  0.9247078  0.08672566
  0.1111111   0.003053856  0.1213264  0.9246932  0.08674138
  0.1111111   0.003351603  0.1213535  0.9246757  0.08676010
  0.1111111   0.003678380  0.1213861  0.9246547  0.08678325
  0.1111111   0.004037017  0.1214253  0.9246296  0.08681115
  0.1111111   0.004430621  0.1214723  0.9245995  0.08684541
  0.1111111   0.004862602  0.1215285  0.9245636  0.08688706
  0.1111111   0.005336699  0.1215955  0.9245211  0.08693708
  0.1111111   0.005857021  0.1216734  0.9244725  0.08699575
  0.1111111   0.006428073  0.1217640  0.9244167  0.08706176
  0.1111111   0.007054802  0.1218723  0.9243517  0.08714020
  0.1111111   0.007742637  0.1220023  0.9242730  0.08723349
  0.1111111   0.008497534  0.1221574  0.9241789  0.08734784
  0.1111111   0.009326033  0.1223418  0.9240671  0.08748788
  0.1111111   0.010235310  0.1225610  0.9239338  0.08765828
  0.1111111   0.011233240  0.1228206  0.9237757  0.08786128
  0.1111111   0.012328467  0.1231251  0.9235903  0.08810148
  0.1111111   0.013530478  0.1234858  0.9233706  0.08839310
  0.1111111   0.014849683  0.1239090  0.9231112  0.08873575
  0.1111111   0.016297508  0.1244137  0.9227994  0.08913617
  0.1111111   0.017886495  0.1250059  0.9224297  0.08961301
  0.1111111   0.019630407  0.1256982  0.9219954  0.09017614
  0.1111111   0.021544347  0.1265143  0.9214749  0.09085306
  0.1111111   0.023644894  0.1274679  0.9208584  0.09165533
  0.1111111   0.025950242  0.1285776  0.9201331  0.09258548
  0.1111111   0.028480359  0.1298571  0.9192845  0.09366354
  0.1111111   0.031257158  0.1313419  0.9182803  0.09491783
  0.1111111   0.034304693  0.1330534  0.9170988  0.09637225
  0.1111111   0.037649358  0.1350118  0.9157160  0.09803835
  0.1111111   0.041320124  0.1372378  0.9141128  0.09990429
  0.1111111   0.045348785  0.1397448  0.9122722  0.10199035
  0.1111111   0.049770236  0.1425567  0.9101670  0.10431658
  0.1111111   0.054622772  0.1456757  0.9077977  0.10690385
  0.1111111   0.059948425  0.1490664  0.9052449  0.10972602
  0.1111111   0.065793322  0.1526953  0.9025983  0.11274363
  0.1111111   0.072208090  0.1565559  0.8999013  0.11596297
  0.1111111   0.079248290  0.1606923  0.8971276  0.11941841
  0.1111111   0.086974900  0.1652388  0.8939947  0.12322742
  0.1111111   0.095454846  0.1702413  0.8904195  0.12746901
  0.1111111   0.104761575  0.1756154  0.8865688  0.13200873
  0.1111111   0.114975700  0.1812278  0.8828346  0.13672245
  0.1111111   0.126185688  0.1872798  0.8787716  0.14179500
  0.1111111   0.138488637  0.1937847  0.8743191  0.14724908
  0.1111111   0.151991108  0.2007984  0.8692493  0.15313792
  0.1111111   0.166810054  0.2083792  0.8633033  0.15946987
  0.1111111   0.183073828  0.2165454  0.8562948  0.16629903
  0.1111111   0.200923300  0.2253000  0.8479675  0.17364441
  0.1111111   0.220513074  0.2344633  0.8387523  0.18128129
  0.1111111   0.242012826  0.2438032  0.8294846  0.18904129
  0.1111111   0.265608778  0.2535871  0.8188895  0.19715695
  0.1111111   0.291505306  0.2636993  0.8071145  0.20551204
  0.1111111   0.319926714  0.2741153  0.7940282  0.21409987
  0.1111111   0.351119173  0.2847082  0.7799562  0.22286315
  0.1111111   0.385352859  0.2954869  0.7645372  0.23179262
  0.1111111   0.422924287  0.3066095  0.7461381  0.24098325
  0.1111111   0.464158883  0.3181258  0.7231542  0.25046063
  0.1111111   0.509413801  0.3299815  0.6942349  0.26020522
  0.1111111   0.559081018  0.3419844  0.6587992  0.27006763
  0.1111111   0.613590727  0.3534831  0.6214239  0.27955448
  0.1111111   0.673415066  0.3639929  0.5889376  0.28828655
  0.1111111   0.739072203  0.3733378  0.5641600  0.29609432
  0.1111111   0.811130831  0.3815679  0.5498502  0.30290536
  0.1111111   0.890215085  0.3896798  0.5334248  0.30961589
  0.1111111   0.977009957  0.3976221  0.5136393  0.31618662
  0.1111111   1.072267222  0.4048771  0.5025919  0.32221816
  0.1111111   1.176811952  0.4119484  0.4881507  0.32815474
  0.1111111   1.291549665  0.4186307  0.4710747  0.33383641
  0.1111111   1.417474163  0.4250836  0.4411928  0.33933744
  0.1111111   1.555676144  0.4305980  0.4235564  0.34401198
  0.1111111   1.707352647  0.4357652  0.3723274  0.34836787
  0.1111111   1.873817423  0.4392024  0.2635578  0.35113247
  0.1111111   2.056512308  0.4411105  0.2443734  0.35246376
  0.1111111   2.257019720  0.4411191        NaN  0.35246969
  0.1111111   2.477076356  0.4411191        NaN  0.35246969
  0.1111111   2.718588243  0.4411191        NaN  0.35246969
  0.1111111   2.983647240  0.4411191        NaN  0.35246969
  0.1111111   3.274549163  0.4411191        NaN  0.35246969
  0.1111111   3.593813664  0.4411191        NaN  0.35246969
  0.1111111   3.944206059  0.4411191        NaN  0.35246969
  0.1111111   4.328761281  0.4411191        NaN  0.35246969
  0.1111111   4.750810162  0.4411191        NaN  0.35246969
  0.1111111   5.214008288  0.4411191        NaN  0.35246969
  0.1111111   5.722367659  0.4411191        NaN  0.35246969
  0.1111111   6.280291442  0.4411191        NaN  0.35246969
  0.1111111   6.892612104  0.4411191        NaN  0.35246969
  0.1111111   7.564633276  0.4411191        NaN  0.35246969
  0.1111111   8.302175681  0.4411191        NaN  0.35246969
  0.1111111   9.111627561  0.4411191        NaN  0.35246969
  0.1111111  10.000000000  0.4411191        NaN  0.35246969
 [ reached getOption("max.print") -- omitted 800 rows ]

RMSE was used to select the optimal model using the smallest value.
The final values used for the model were alpha = 0.1111111 and lambda = 0.001321941.
enetModel$bestTune
enetLambda<-enetModel$bestTune$lambda
enetAlpha<-enetModel$bestTune$alpha

enetPredector<-setdiff(names(carbonTrainData),"CarbonEmission")

enetFinalModel<-glmnet(as.matrix(carbonTrainData[,enetPredector]),carbonTrainData[,"CarbonEmission"], alpha = enetAlpha,lambda = enetLambda, family = "gaussian")
Warning: NAs introduced by coercion
enetFinalModel

Call:  glmnet(x = as.matrix(carbonTrainData[, enetPredector]), y = carbonTrainData[,      "CarbonEmission"], family = "gaussian", alpha = enetAlpha,      lambda = enetLambda) 

  Df  %Dev   Lambda
1 17 38.08 0.001322
carbonTrainData$`No Recycling`
NULL

#Random Forest Model

library(randomForest)
set.seed(1)
randomForestModel<-randomForest(CarbonEmission~.,data = carbonTrainData)
randomForestModel

Call:
 randomForest(formula = CarbonEmission ~ ., data = carbonTrainData) 
               Type of random forest: regression
                     Number of trees: 500
No. of variables tried at each split: 9

          Mean of squared residuals: 0.01610385
                    % Var explained: 91.72
mRf<-train(CarbonEmission~.,
           data=carbonTrainData,
           method="rf",
           trControl=trainControl(method = "cv", number =5)
           )
mRf
Random Forest 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6401, 6401, 6401, 6400, 6401 
Resampling results across tuning parameters:

  mtry  RMSE       Rsquared   MAE      
   2    0.2712051  0.8060857  0.2121779
  24    0.1382189  0.9061441  0.1065777
  47    0.1427589  0.8970490  0.1106657

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was mtry = 24.
varImp(mRf)
rf variable importance

  only 20 most important variables shown (out of 47)
rfPred<-predict(mRf,newdata = carbonTestData)

MAE(carbonTestData$CarbonEmission,rfPred)
[1] 0.1042843
rmse(carbonTestData$CarbonEmission,rfPred)
[1] 0.005051824
cor(carbonTestData$CarbonEmission,rfPred)^2
[1] 0.907299
plot(carbonTestData$CarbonEmission,rfPred)

GBM

set.seed(1)

grBoostedTree<-train(
  CarbonEmission~.,
  data = carbonTrainData,
  method="gbm",
  trControl=trainControl(method = "cv",number = 5)
)
Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1863             nan     0.1000    0.0085
     2        0.1789             nan     0.1000    0.0070
     3        0.1715             nan     0.1000    0.0073
     4        0.1654             nan     0.1000    0.0060
     5        0.1595             nan     0.1000    0.0055
     6        0.1550             nan     0.1000    0.0042
     7        0.1503             nan     0.1000    0.0048
     8        0.1462             nan     0.1000    0.0039
     9        0.1424             nan     0.1000    0.0036
    10        0.1383             nan     0.1000    0.0041
    20        0.1140             nan     0.1000    0.0019
    40        0.0886             nan     0.1000    0.0009
    60        0.0720             nan     0.1000    0.0006
    80        0.0600             nan     0.1000    0.0005
   100        0.0513             nan     0.1000    0.0003
   120        0.0449             nan     0.1000    0.0002
   140        0.0399             nan     0.1000    0.0002
   150        0.0379             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1795             nan     0.1000    0.0151
     2        0.1671             nan     0.1000    0.0126
     3        0.1571             nan     0.1000    0.0100
     4        0.1486             nan     0.1000    0.0084
     5        0.1413             nan     0.1000    0.0076
     6        0.1348             nan     0.1000    0.0065
     7        0.1286             nan     0.1000    0.0061
     8        0.1230             nan     0.1000    0.0053
     9        0.1183             nan     0.1000    0.0046
    10        0.1136             nan     0.1000    0.0045
    20        0.0847             nan     0.1000    0.0020
    40        0.0562             nan     0.1000    0.0010
    60        0.0409             nan     0.1000    0.0005
    80        0.0320             nan     0.1000    0.0003
   100        0.0261             nan     0.1000    0.0002
   120        0.0222             nan     0.1000    0.0001
   140        0.0192             nan     0.1000    0.0001
   150        0.0180             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1759             nan     0.1000    0.0185
     2        0.1607             nan     0.1000    0.0156
     3        0.1479             nan     0.1000    0.0123
     4        0.1379             nan     0.1000    0.0099
     5        0.1281             nan     0.1000    0.0096
     6        0.1206             nan     0.1000    0.0076
     7        0.1141             nan     0.1000    0.0063
     8        0.1084             nan     0.1000    0.0055
     9        0.1028             nan     0.1000    0.0054
    10        0.0983             nan     0.1000    0.0045
    20        0.0700             nan     0.1000    0.0019
    40        0.0422             nan     0.1000    0.0010
    60        0.0296             nan     0.1000    0.0004
    80        0.0224             nan     0.1000    0.0003
   100        0.0177             nan     0.1000    0.0001
   120        0.0147             nan     0.1000    0.0001
   140        0.0123             nan     0.1000    0.0001
   150        0.0113             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1868             nan     0.1000    0.0088
     2        0.1792             nan     0.1000    0.0074
     3        0.1718             nan     0.1000    0.0074
     4        0.1659             nan     0.1000    0.0061
     5        0.1597             nan     0.1000    0.0057
     6        0.1548             nan     0.1000    0.0048
     7        0.1498             nan     0.1000    0.0047
     8        0.1457             nan     0.1000    0.0037
     9        0.1416             nan     0.1000    0.0040
    10        0.1381             nan     0.1000    0.0034
    20        0.1136             nan     0.1000    0.0017
    40        0.0888             nan     0.1000    0.0010
    60        0.0722             nan     0.1000    0.0008
    80        0.0605             nan     0.1000    0.0004
   100        0.0517             nan     0.1000    0.0003
   120        0.0453             nan     0.1000    0.0003
   140        0.0404             nan     0.1000    0.0002
   150        0.0384             nan     0.1000    0.0002

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1801             nan     0.1000    0.0157
     2        0.1670             nan     0.1000    0.0129
     3        0.1565             nan     0.1000    0.0105
     4        0.1480             nan     0.1000    0.0087
     5        0.1408             nan     0.1000    0.0072
     6        0.1344             nan     0.1000    0.0063
     7        0.1280             nan     0.1000    0.0062
     8        0.1230             nan     0.1000    0.0052
     9        0.1184             nan     0.1000    0.0044
    10        0.1143             nan     0.1000    0.0043
    20        0.0856             nan     0.1000    0.0024
    40        0.0575             nan     0.1000    0.0009
    60        0.0413             nan     0.1000    0.0009
    80        0.0322             nan     0.1000    0.0003
   100        0.0262             nan     0.1000    0.0002
   120        0.0220             nan     0.1000    0.0002
   140        0.0190             nan     0.1000    0.0001
   150        0.0178             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1769             nan     0.1000    0.0188
     2        0.1610             nan     0.1000    0.0154
     3        0.1482             nan     0.1000    0.0127
     4        0.1381             nan     0.1000    0.0102
     5        0.1288             nan     0.1000    0.0094
     6        0.1210             nan     0.1000    0.0078
     7        0.1147             nan     0.1000    0.0060
     8        0.1092             nan     0.1000    0.0056
     9        0.1037             nan     0.1000    0.0056
    10        0.0988             nan     0.1000    0.0049
    20        0.0701             nan     0.1000    0.0022
    40        0.0429             nan     0.1000    0.0008
    60        0.0298             nan     0.1000    0.0005
    80        0.0227             nan     0.1000    0.0002
   100        0.0180             nan     0.1000    0.0001
   120        0.0147             nan     0.1000    0.0001
   140        0.0123             nan     0.1000    0.0001
   150        0.0114             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1853             nan     0.1000    0.0088
     2        0.1776             nan     0.1000    0.0076
     3        0.1703             nan     0.1000    0.0076
     4        0.1647             nan     0.1000    0.0058
     5        0.1587             nan     0.1000    0.0062
     6        0.1535             nan     0.1000    0.0049
     7        0.1487             nan     0.1000    0.0049
     8        0.1448             nan     0.1000    0.0040
     9        0.1406             nan     0.1000    0.0039
    10        0.1369             nan     0.1000    0.0035
    20        0.1125             nan     0.1000    0.0016
    40        0.0879             nan     0.1000    0.0009
    60        0.0712             nan     0.1000    0.0006
    80        0.0596             nan     0.1000    0.0005
   100        0.0509             nan     0.1000    0.0003
   120        0.0445             nan     0.1000    0.0002
   140        0.0398             nan     0.1000    0.0002
   150        0.0378             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1787             nan     0.1000    0.0155
     2        0.1655             nan     0.1000    0.0128
     3        0.1553             nan     0.1000    0.0102
     4        0.1472             nan     0.1000    0.0081
     5        0.1393             nan     0.1000    0.0078
     6        0.1329             nan     0.1000    0.0065
     7        0.1268             nan     0.1000    0.0060
     8        0.1213             nan     0.1000    0.0052
     9        0.1162             nan     0.1000    0.0051
    10        0.1117             nan     0.1000    0.0044
    20        0.0828             nan     0.1000    0.0016
    40        0.0554             nan     0.1000    0.0009
    60        0.0401             nan     0.1000    0.0004
    80        0.0314             nan     0.1000    0.0002
   100        0.0257             nan     0.1000    0.0002
   120        0.0217             nan     0.1000    0.0001
   140        0.0189             nan     0.1000    0.0001
   150        0.0178             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1755             nan     0.1000    0.0190
     2        0.1596             nan     0.1000    0.0156
     3        0.1468             nan     0.1000    0.0129
     4        0.1366             nan     0.1000    0.0104
     5        0.1273             nan     0.1000    0.0091
     6        0.1201             nan     0.1000    0.0073
     7        0.1126             nan     0.1000    0.0074
     8        0.1066             nan     0.1000    0.0058
     9        0.1019             nan     0.1000    0.0045
    10        0.0979             nan     0.1000    0.0040
    20        0.0685             nan     0.1000    0.0020
    40        0.0416             nan     0.1000    0.0010
    60        0.0289             nan     0.1000    0.0004
    80        0.0221             nan     0.1000    0.0002
   100        0.0173             nan     0.1000    0.0001
   120        0.0141             nan     0.1000    0.0001
   140        0.0119             nan     0.1000    0.0001
   150        0.0110             nan     0.1000    0.0000

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1855             nan     0.1000    0.0088
     2        0.1782             nan     0.1000    0.0075
     3        0.1710             nan     0.1000    0.0069
     4        0.1648             nan     0.1000    0.0060
     5        0.1589             nan     0.1000    0.0056
     6        0.1542             nan     0.1000    0.0046
     7        0.1493             nan     0.1000    0.0049
     8        0.1452             nan     0.1000    0.0040
     9        0.1414             nan     0.1000    0.0035
    10        0.1375             nan     0.1000    0.0037
    20        0.1132             nan     0.1000    0.0020
    40        0.0882             nan     0.1000    0.0009
    60        0.0717             nan     0.1000    0.0007
    80        0.0599             nan     0.1000    0.0005
   100        0.0512             nan     0.1000    0.0003
   120        0.0448             nan     0.1000    0.0003
   140        0.0399             nan     0.1000    0.0002
   150        0.0380             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1787             nan     0.1000    0.0152
     2        0.1663             nan     0.1000    0.0125
     3        0.1559             nan     0.1000    0.0102
     4        0.1475             nan     0.1000    0.0081
     5        0.1400             nan     0.1000    0.0073
     6        0.1339             nan     0.1000    0.0061
     7        0.1277             nan     0.1000    0.0063
     8        0.1219             nan     0.1000    0.0056
     9        0.1171             nan     0.1000    0.0049
    10        0.1125             nan     0.1000    0.0045
    20        0.0836             nan     0.1000    0.0017
    40        0.0552             nan     0.1000    0.0010
    60        0.0402             nan     0.1000    0.0005
    80        0.0312             nan     0.1000    0.0003
   100        0.0253             nan     0.1000    0.0002
   120        0.0214             nan     0.1000    0.0001
   140        0.0187             nan     0.1000    0.0001
   150        0.0176             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1756             nan     0.1000    0.0190
     2        0.1605             nan     0.1000    0.0152
     3        0.1477             nan     0.1000    0.0125
     4        0.1376             nan     0.1000    0.0102
     5        0.1289             nan     0.1000    0.0088
     6        0.1207             nan     0.1000    0.0082
     7        0.1138             nan     0.1000    0.0068
     8        0.1072             nan     0.1000    0.0066
     9        0.1016             nan     0.1000    0.0053
    10        0.0970             nan     0.1000    0.0045
    20        0.0687             nan     0.1000    0.0019
    40        0.0416             nan     0.1000    0.0010
    60        0.0291             nan     0.1000    0.0005
    80        0.0221             nan     0.1000    0.0002
   100        0.0174             nan     0.1000    0.0002
   120        0.0141             nan     0.1000    0.0001
   140        0.0120             nan     0.1000    0.0001
   150        0.0112             nan     0.1000    0.0000

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1844             nan     0.1000    0.0087
     2        0.1767             nan     0.1000    0.0075
     3        0.1697             nan     0.1000    0.0071
     4        0.1636             nan     0.1000    0.0060
     5        0.1576             nan     0.1000    0.0059
     6        0.1528             nan     0.1000    0.0046
     7        0.1479             nan     0.1000    0.0048
     8        0.1439             nan     0.1000    0.0039
     9        0.1400             nan     0.1000    0.0038
    10        0.1367             nan     0.1000    0.0031
    20        0.1128             nan     0.1000    0.0018
    40        0.0879             nan     0.1000    0.0009
    60        0.0716             nan     0.1000    0.0005
    80        0.0597             nan     0.1000    0.0004
   100        0.0512             nan     0.1000    0.0004
   120        0.0449             nan     0.1000    0.0002
   140        0.0399             nan     0.1000    0.0002
   150        0.0380             nan     0.1000    0.0002

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1783             nan     0.1000    0.0152
     2        0.1660             nan     0.1000    0.0123
     3        0.1558             nan     0.1000    0.0101
     4        0.1472             nan     0.1000    0.0084
     5        0.1396             nan     0.1000    0.0074
     6        0.1334             nan     0.1000    0.0063
     7        0.1275             nan     0.1000    0.0059
     8        0.1228             nan     0.1000    0.0048
     9        0.1170             nan     0.1000    0.0055
    10        0.1124             nan     0.1000    0.0046
    20        0.0830             nan     0.1000    0.0015
    40        0.0543             nan     0.1000    0.0013
    60        0.0399             nan     0.1000    0.0005
    80        0.0315             nan     0.1000    0.0002
   100        0.0258             nan     0.1000    0.0003
   120        0.0218             nan     0.1000    0.0001
   140        0.0188             nan     0.1000    0.0001
   150        0.0176             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1748             nan     0.1000    0.0189
     2        0.1592             nan     0.1000    0.0155
     3        0.1466             nan     0.1000    0.0128
     4        0.1365             nan     0.1000    0.0101
     5        0.1276             nan     0.1000    0.0088
     6        0.1204             nan     0.1000    0.0071
     7        0.1137             nan     0.1000    0.0065
     8        0.1080             nan     0.1000    0.0056
     9        0.1028             nan     0.1000    0.0051
    10        0.0975             nan     0.1000    0.0051
    20        0.0701             nan     0.1000    0.0019
    40        0.0433             nan     0.1000    0.0008
    60        0.0304             nan     0.1000    0.0006
    80        0.0232             nan     0.1000    0.0003
   100        0.0183             nan     0.1000    0.0001
   120        0.0151             nan     0.1000    0.0001
   140        0.0127             nan     0.1000    0.0001
   150        0.0118             nan     0.1000    0.0001

Iter   TrainDeviance   ValidDeviance   StepSize   Improve
     1        0.1753             nan     0.1000    0.0188
     2        0.1599             nan     0.1000    0.0153
     3        0.1472             nan     0.1000    0.0125
     4        0.1372             nan     0.1000    0.0100
     5        0.1289             nan     0.1000    0.0084
     6        0.1199             nan     0.1000    0.0087
     7        0.1130             nan     0.1000    0.0069
     8        0.1068             nan     0.1000    0.0060
     9        0.1018             nan     0.1000    0.0051
    10        0.0977             nan     0.1000    0.0040
    20        0.0699             nan     0.1000    0.0018
    40        0.0427             nan     0.1000    0.0007
    60        0.0297             nan     0.1000    0.0005
    80        0.0229             nan     0.1000    0.0003
   100        0.0185             nan     0.1000    0.0002
   120        0.0150             nan     0.1000    0.0002
   140        0.0125             nan     0.1000    0.0000
   150        0.0116             nan     0.1000    0.0001
grBoostedTree
Stochastic Gradient Boosting 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results across tuning parameters:

  interaction.depth  n.trees  RMSE       Rsquared   MAE       
  1                   50      0.2825681  0.6848913  0.21910129
  1                  100      0.2276478  0.7963534  0.17429897
  1                  150      0.1965925  0.8385292  0.14854439
  2                   50      0.2193290  0.8179728  0.16722911
  2                  100      0.1644147  0.8876415  0.12355000
  2                  150      0.1375675  0.9160870  0.10256446
  3                   50      0.1897724  0.8600842  0.14451760
  3                  100      0.1377020  0.9190183  0.10349530
  3                  150      0.1115734  0.9430885  0.08264941

Tuning parameter 'shrinkage' was held constant at a value of 0.1
Tuning parameter 'n.minobsinnode' was held constant at a value of 10
RMSE was used to select the optimal model using the smallest value.
The final values used for the model were n.trees = 150, interaction.depth = 3, shrinkage = 0.1 and n.minobsinnode = 10.
gbmPred<-predict(grBoostedTree, carbonTestData)
MAE(carbonTestData$CarbonEmission,gbmPred)
[1] 0.08071192
rmse(carbonTestData$CarbonEmission,gbmPred)
[1] 0.0006674298
cor(carbonTestData$CarbonEmission,gbmPred)^2
[1] 0.9428016
plot(carbonTestData$CarbonEmission,gbmPred)

#SV Linear Model

set.seed(1)

svmLinear<-train(
  CarbonEmission~.,
  data = carbonTrainData,
  method="svmLinear",
  trControl=trainControl(method = "cv",number = 5, preProc=c("center","scale"))
)
svmLinear
Support Vector Machines with Linear Kernel 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results:

  RMSE       Rsquared   MAE       
  0.1216608  0.9244839  0.08585286

Tuning parameter 'C' was held constant at a value of 1
svmPred<-predict(svmLinear,carbonTestData)

plot(svmPred,carbonTestData$CarbonEmission)

#SVM Radial Model

set.seed(1)

svmRadial<-train(
  CarbonEmission~.,
  data = carbonTrainData,
  method="svmRadial",
  trControl=trainControl(method = "cv",number = 5, preProc=c("center","scale"))
)
svmRadial
Support Vector Machines with Radial Basis Function Kernel 

8001 samples
  28 predictor

No pre-processing
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 6400, 6402, 6400, 6401, 6401 
Resampling results across tuning parameters:

  C     RMSE        Rsquared   MAE       
  0.25  0.08190788  0.9678058  0.05674104
  0.50  0.06914040  0.9764828  0.04865093
  1.00  0.06154311  0.9809844  0.04422410

Tuning parameter 'sigma' was held constant at a value of 0.01148182
RMSE was used to select the optimal model using the smallest value.
The final values used for the model were sigma = 0.01148182 and C = 1.
svmRadialPred<-predict(svmRadial,carbonTestData)

plot(svmRadialPred,carbonTestData$CarbonEmission)

#Comparing models

compare=resamples(list(KNN=knnModel,LIN=lmModel,stepWise=stepwiseModel,Lasso=lassoModel,Ridge=ridgeModel,Enet=enetModel,RF=mRf,GBM=grBoostedTree,SVML=svmLinear,SVMR=svmRadial))
summary(compare) # Out of all the models SVM Radial stands out the most

Call:
summary.resamples(object = compare)

Models: KNN, LIN, stepWise, Lasso, Ridge, Enet, RF, GBM, SVML, SVMR 
Number of resamples: 5 

MAE 
               Min.    1st Qu.     Median       Mean    3rd Qu.       Max. NA's
KNN      0.29623471 0.29740921 0.30499011 0.30249251 0.30575296 0.30807555    0
LIN      0.08480145 0.08612879 0.08704453 0.08667648 0.08732807 0.08807956    0
stepWise 0.27060240 0.27186835 0.27300079 0.27312929 0.27490680 0.27526812    0
Lasso    0.08496466 0.08611094 0.08720014 0.08687629 0.08723989 0.08886584    0
Ridge    0.08691866 0.08723220 0.08858797 0.08856450 0.08950638 0.09057731    0
Enet     0.08445732 0.08608927 0.08684209 0.08667484 0.08711682 0.08886872    0
RF       0.10394857 0.10611419 0.10628345 0.10657774 0.10707089 0.10947160    0
GBM      0.08008938 0.08165398 0.08346939 0.08264941 0.08390377 0.08413051    0
SVML     0.08366201 0.08516816 0.08566449 0.08585286 0.08648885 0.08828078    0
SVMR     0.04362895 0.04386712 0.04451333 0.04422410 0.04452306 0.04458802    0

RMSE 
               Min.    1st Qu.     Median       Mean    3rd Qu.       Max. NA's
KNN      0.37137353 0.38041941 0.38481702 0.38142506 0.38485362 0.38566170    0
LIN      0.11859265 0.12133365 0.12142487 0.12108930 0.12164347 0.12245187    0
stepWise 0.33950584 0.34519992 0.34662453 0.34713775 0.35174536 0.35261310    0
Lasso    0.11828998 0.12011679 0.12300251 0.12149735 0.12301315 0.12306432    0
Ridge    0.11999485 0.12265571 0.12476610 0.12362958 0.12481897 0.12591227    0
Enet     0.11826611 0.11953850 0.12259232 0.12122440 0.12285103 0.12287402    0
RF       0.13240909 0.13682774 0.13761090 0.13821888 0.14192035 0.14232634    0
GBM      0.10729648 0.11057936 0.11283863 0.11157342 0.11325280 0.11389984    0
SVML     0.11867684 0.11977993 0.12295302 0.12166077 0.12340309 0.12349097    0
SVMR     0.06067301 0.06135216 0.06154531 0.06154311 0.06180787 0.06233721    0

Rsquared 
              Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
KNN      0.2445364 0.2467487 0.2682413 0.2635529 0.2744761 0.2837618    0
LIN      0.9185288 0.9241334 0.9249591 0.9245749 0.9264152 0.9288379    0
stepWise 0.3578135 0.3697142 0.3798824 0.3809492 0.3880434 0.4092925    0
Lasso    0.9224198 0.9225172 0.9253228 0.9245000 0.9257084 0.9265317    0
Ridge    0.9216849 0.9217637 0.9243347 0.9235380 0.9248964 0.9250104    0
Enet     0.9225978 0.9226924 0.9254929 0.9247599 0.9258395 0.9271770    0
RF       0.9001725 0.9046329 0.9068228 0.9061441 0.9088380 0.9102542    0
GBM      0.9407131 0.9426509 0.9428430 0.9430885 0.9438202 0.9454152    0
SVML     0.9220482 0.9224530 0.9249043 0.9244839 0.9254125 0.9276015    0
SVMR     0.9805677 0.9807548 0.9809038 0.9809844 0.9810939 0.9816018    0

Neural Network Preprocessing

library(caret)
carbonInd<-createDataPartition(carbonTrainData$CarbonEmission,p=0.9,list = FALSE)
carbonIndex<-which(names(carbonTrainData)=='CarbonEmission')

carbonTrainingData<-carbonTrainData[carbonInd,-carbonIndex]
str(carbonTrainingData)
'data.frame':   7202 obs. of  28 variables:
 $ Body.Type                    : Factor w/ 4 levels "normal","obese",..: 3 2 3 2 3 4 4 3 4 1 ...
 $ Sex                          : Factor w/ 2 levels "female","male": 1 1 2 1 2 1 1 2 1 1 ...
 $ Diet                         : Factor w/ 4 levels "omnivore","pescatarian",..: 2 4 1 4 4 3 3 1 2 4 ...
 $ How.Often.Shower             : Factor w/ 4 levels "daily","less frequently",..: 1 2 4 1 2 2 3 1 1 3 ...
 $ Heating.Energy.Source        : Factor w/ 4 levels "coal","electricity",..: 1 3 4 1 4 4 1 4 4 4 ...
 $ Transport                    : Factor w/ 3 levels "private","public",..: 2 3 3 1 2 1 3 2 2 2 ...
 $ Vehicle.Type                 : Factor w/ 6 levels "diesel","electric",..: 3 3 3 1 3 4 3 3 3 3 ...
 $ Social.Activity              : Factor w/ 3 levels "never","often",..: 2 2 3 2 3 1 3 1 2 1 ...
 $ Monthly.Grocery.Bill         : num  230 114 157 266 144 56 59 200 135 146 ...
 $ Frequency.of.Traveling.by.Air: Factor w/ 4 levels "frequently","never",..: 1 3 3 4 1 3 4 1 3 2 ...
 $ Vehicle.Monthly.Distance.Km  : num  210 9 74 8457 658 ...
 $ Waste.Bag.Size               : Factor w/ 4 levels "extra large",..: 2 1 3 2 2 3 1 3 1 1 ...
 $ Waste.Bag.Weekly.Count       : num  4 3 3 1 1 4 3 3 1 4 ...
 $ How.Long.TV.PC.Daily.Hour    : num  7 9 20 3 22 9 5 3 8 12 ...
 $ How.Many.New.Clothes.Monthly : num  26 38 5 5 18 11 39 31 23 27 ...
 $ How.Long.Internet.Daily.Hour : num  1 5 7 6 9 19 15 15 18 21 ...
 $ Energy.efficiency            : Factor w/ 3 levels "No","Sometimes",..: 1 1 2 3 2 2 1 3 2 1 ...
 $ Metal                        : num  1 1 1 0 1 0 0 0 0 0 ...
 $ Paper                        : num  0 0 1 1 1 0 1 0 0 1 ...
 $ Plastic                      : num  0 0 1 0 0 0 1 0 0 1 ...
 $ Glass                        : num  0 0 1 0 1 0 1 1 1 0 ...
 $ No_Recycling                 : num  0 0 0 0 0 1 0 0 0 0 ...
 $ Stove                        : num  1 1 0 0 1 0 1 0 0 1 ...
 $ Oven                         : num  1 0 0 1 1 0 0 0 0 0 ...
 $ Microwave                    : num  0 1 1 0 1 0 1 1 1 1 ...
 $ Grill                        : num  0 0 1 0 0 1 0 1 1 0 ...
 $ Airfryer                     : num  0 0 1 0 0 1 0 1 1 0 ...
 $ No_Cooking                   : num  0 0 0 0 0 0 0 0 0 0 ...
carbonTrainingLabels<-carbonTrainData[carbonInd,carbonIndex]
str(carbonTrainingLabels)
 num [1:7202] 7.71 7.55 6.98 8.46 7.41 ...
carbonValidationData<-carbonTrainData[-carbonInd,-carbonIndex]
carbonValidationData

carbonValidationLabels<-carbonTrainData[-carbonInd,carbonIndex]
str(carbonValidationLabels)
 num [1:799] 6.93 7.5 7.41 7.51 7.13 ...
carbonTestingData<-carbonTestData[,-carbonIndex]
carbonTestingData

carbonTestingLabels<-carbonTestData[,carbonIndex]
str(carbonTestingLabels)
 num [1:1999] 7.86 6.56 7.6 7.35 8.27 ...
dim(carbonTrainingData)
[1] 7202   28
dim(carbonTestingData)
[1] 1999   28

#Scaling numeric Variables and one hot encoding categorical variables

library(mltools)
library(data.table)
numericCols<-c("Monthly.Grocery.Bill","Vehicle.Monthly.Distance.Km","Waste.Bag.Weekly.Count",
               "How.Long.TV.PC.Daily.Hour","How.Many.New.Clothes.Monthly","How.Long.Internet.Daily.Hour","Metal","Paper","Plastic","Glass","Stove","Oven"
               ,"Microwave","Grill","Airfryer","No_Cooking","No_Recycling")

categoricalCols<-c("Body.Type","Sex","Diet","How.Often.Shower","Heating.Energy.Source","Transport","Vehicle.Type","Social.Activity",
                   "Frequency.of.Traveling.by.Air","Waste.Bag.Size","Energy.efficiency")

carbonTrainingDataNew<-scale(carbonTrainingData[,numericCols])
colMeanTrain<-attr(carbonTrainingDataNew,"scaled:center")
colStddevsTrain<-attr(carbonTrainingDataNew,"scaled:scale")


carbonTrainingData[,numericCols]<-carbonTrainingDataNew
carbonValidationData[,numericCols]<-scale(carbonValidationData[,numericCols],center = colMeanTrain,scale = colStddevsTrain)
carbonTestingData[,numericCols]<-scale(carbonTestingData[,numericCols],center = colMeanTrain,scale = colStddevsTrain)

carbonTrainingTable<-as.data.table(carbonTrainingData)
carbonValidationTable<-as.data.table(carbonValidationData)
carbonTestingTable<-as.data.table(carbonTestingData)

carbonTrainingOneHot<-one_hot(carbonTrainingTable,naCols=FALSE,dropCols=TRUE,dropUnusedLevels=TRUE)
carbonTrainingOneHot

carbonValidationOneHot<-one_hot(carbonValidationTable,naCols=FALSE,dropCols=TRUE,dropUnusedLevels=TRUE)
carbonValidationOneHot

carbonTestingOneHot<-one_hot(carbonTestingTable,naCols=FALSE,dropCols=TRUE,dropUnusedLevels=TRUE)
carbonTestingOneHot

carbonTrainingFinal<-as.data.frame(cbind(carbonTrainingTable[, ..numericCols], carbonTrainingOneHot))
carbonTrainingFinal

carbonValidationFinal<-as.data.frame(cbind(carbonValidationTable[, ..numericCols], carbonValidationOneHot))
carbonValidationFinal

carbonTestingFinal<-as.data.frame(cbind(carbonTestingTable[, ..numericCols], carbonTestingOneHot))
carbonTestingFinal
library(keras)

model<-keras_model_sequential()%>%
  layer_dense(units = 32,activation = "relu",input_shape = dim(carbonTrainingFinal)[2])%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 32,activation = "relu")%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 16,activation = "relu")%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 1)
/Users/angadsingh/.virtualenvs/r-tensorflow/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
  warnings.warn(
2024-05-06 19:15:32.845040: I metal_plugin/src/device/metal_device.cc:1154] Metal device set to: Apple M2 Pro
2024-05-06 19:15:32.845063: I metal_plugin/src/device/metal_device.cc:296] systemMemory: 16.00 GB
2024-05-06 19:15:32.845070: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 5.33 GB
2024-05-06 19:15:32.845150: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:303] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
2024-05-06 19:15:32.845446: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:269] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
model %>% compile(
  loss="mse",
  optimizer=optimizer_adam(lr=0.001)
)
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.
history<-model %>% fit(as.matrix(carbonTrainingFinal),
                       carbonTrainingLabels,
                       batch_size=50,
                       epochs=20,
                       validation_data=list(as.matrix(carbonValidationFinal),carbonValidationLabels)
                         )
Epoch 1/20
2024-05-06 19:15:34.205221: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

  1/145 [..............................] - ETA: 6:28 - loss: 46.4678
 10/145 [=>............................] - ETA: 0s - loss: 49.9576  
 21/145 [===>..........................] - ETA: 0s - loss: 44.4478
 30/145 [=====>........................] - ETA: 0s - loss: 38.7821
 41/145 [=======>......................] - ETA: 0s - loss: 34.2338
 52/145 [=========>....................] - ETA: 0s - loss: 30.6068
 63/145 [============>.................] - ETA: 0s - loss: 27.5559
 74/145 [==============>...............] - ETA: 0s - loss: 25.2218
 84/145 [================>.............] - ETA: 0s - loss: 23.4696
 95/145 [==================>...........] - ETA: 0s - loss: 21.7564
106/145 [====================>.........] - ETA: 0s - loss: 20.4552
116/145 [=======================>......] - ETA: 0s - loss: 19.3248
126/145 [=========================>....] - ETA: 0s - loss: 18.3500
137/145 [===========================>..] - ETA: 0s - loss: 17.4256
145/145 [==============================] - 5s 17ms/step - loss: 16.9642
2024-05-06 19:15:39.198894: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

145/145 [==============================] - 6s 22ms/step - loss: 16.9642 - val_loss: 1.2081
Epoch 2/20

  1/145 [..............................] - ETA: 1s - loss: 5.5795
  9/145 [>.............................] - ETA: 0s - loss: 6.7267
 19/145 [==>...........................] - ETA: 0s - loss: 6.5399
 29/145 [=====>........................] - ETA: 0s - loss: 6.4078
 40/145 [=======>......................] - ETA: 0s - loss: 6.3344
 51/145 [=========>....................] - ETA: 0s - loss: 6.2726
 61/145 [===========>..................] - ETA: 0s - loss: 6.1715
 72/145 [=============>................] - ETA: 0s - loss: 6.0768
 82/145 [===============>..............] - ETA: 0s - loss: 5.9246
 93/145 [==================>...........] - ETA: 0s - loss: 5.8156
104/145 [====================>.........] - ETA: 0s - loss: 5.7398
115/145 [======================>.......] - ETA: 0s - loss: 5.6460
126/145 [=========================>....] - ETA: 0s - loss: 5.5552
135/145 [==========================>...] - ETA: 0s - loss: 5.4703
144/145 [============================>.] - ETA: 0s - loss: 5.4012
145/145 [==============================] - 1s 5ms/step - loss: 5.4004

145/145 [==============================] - 1s 6ms/step - loss: 5.4004 - val_loss: 0.8976
Epoch 3/20

  1/145 [..............................] - ETA: 1s - loss: 3.9111
  9/145 [>.............................] - ETA: 0s - loss: 4.4293
 19/145 [==>...........................] - ETA: 0s - loss: 4.1524
 30/145 [=====>........................] - ETA: 0s - loss: 4.0496
 41/145 [=======>......................] - ETA: 0s - loss: 3.9257
 47/145 [========>.....................] - ETA: 0s - loss: 3.9645
 56/145 [==========>...................] - ETA: 0s - loss: 3.8986
 67/145 [============>.................] - ETA: 0s - loss: 3.8377
 77/145 [==============>...............] - ETA: 0s - loss: 3.8053
 87/145 [=================>............] - ETA: 0s - loss: 3.7650
 97/145 [===================>..........] - ETA: 0s - loss: 3.7438
108/145 [=====================>........] - ETA: 0s - loss: 3.7306
119/145 [=======================>......] - ETA: 0s - loss: 3.6962
130/145 [=========================>....] - ETA: 0s - loss: 3.6527
141/145 [============================>.] - ETA: 0s - loss: 3.6156
145/145 [==============================] - 1s 5ms/step - loss: 3.6040

145/145 [==============================] - 1s 6ms/step - loss: 3.6040 - val_loss: 0.6919
Epoch 4/20

  1/145 [..............................] - ETA: 1s - loss: 2.6878
  9/145 [>.............................] - ETA: 0s - loss: 2.9561
 19/145 [==>...........................] - ETA: 0s - loss: 2.8511
 29/145 [=====>........................] - ETA: 0s - loss: 2.7951
 40/145 [=======>......................] - ETA: 0s - loss: 2.7374
 51/145 [=========>....................] - ETA: 0s - loss: 2.7252
 61/145 [===========>..................] - ETA: 0s - loss: 2.6868
 69/145 [=============>................] - ETA: 0s - loss: 2.7536
 79/145 [===============>..............] - ETA: 0s - loss: 2.6883
 90/145 [=================>............] - ETA: 0s - loss: 2.6733
101/145 [===================>..........] - ETA: 0s - loss: 2.6547
112/145 [======================>.......] - ETA: 0s - loss: 2.6215
123/145 [========================>.....] - ETA: 0s - loss: 2.5796
133/145 [==========================>...] - ETA: 0s - loss: 2.5634
144/145 [============================>.] - ETA: 0s - loss: 2.5373
145/145 [==============================] - 1s 5ms/step - loss: 2.5369

145/145 [==============================] - 1s 6ms/step - loss: 2.5369 - val_loss: 0.5816
Epoch 5/20

  1/145 [..............................] - ETA: 1s - loss: 2.6723
  9/145 [>.............................] - ETA: 0s - loss: 2.4941
 20/145 [===>..........................] - ETA: 0s - loss: 2.2869
 30/145 [=====>........................] - ETA: 0s - loss: 2.2124
 41/145 [=======>......................] - ETA: 0s - loss: 2.1710
 51/145 [=========>....................] - ETA: 0s - loss: 2.1798
 61/145 [===========>..................] - ETA: 0s - loss: 2.1802
 72/145 [=============>................] - ETA: 0s - loss: 2.1622
 83/145 [================>.............] - ETA: 0s - loss: 2.1755
 94/145 [==================>...........] - ETA: 0s - loss: 2.1407
105/145 [====================>.........] - ETA: 0s - loss: 2.1034
115/145 [======================>.......] - ETA: 0s - loss: 2.0663
126/145 [=========================>....] - ETA: 0s - loss: 2.0341
137/145 [===========================>..] - ETA: 0s - loss: 2.0106
145/145 [==============================] - 1s 5ms/step - loss: 1.9963

145/145 [==============================] - 1s 6ms/step - loss: 1.9963 - val_loss: 0.6800
Epoch 6/20

  1/145 [..............................] - ETA: 0s - loss: 1.6451
 10/145 [=>............................] - ETA: 0s - loss: 1.8759
 20/145 [===>..........................] - ETA: 0s - loss: 1.8837
 30/145 [=====>........................] - ETA: 0s - loss: 1.8410
 39/145 [=======>......................] - ETA: 0s - loss: 1.7681
 49/145 [=========>....................] - ETA: 0s - loss: 1.7354
 60/145 [===========>..................] - ETA: 0s - loss: 1.7178
 70/145 [=============>................] - ETA: 0s - loss: 1.7201
 81/145 [===============>..............] - ETA: 0s - loss: 1.6933
 92/145 [==================>...........] - ETA: 0s - loss: 1.6739
103/145 [====================>.........] - ETA: 0s - loss: 1.6700
114/145 [======================>.......] - ETA: 0s - loss: 1.6623
125/145 [========================>.....] - ETA: 0s - loss: 1.6400
136/145 [===========================>..] - ETA: 0s - loss: 1.6359
145/145 [==============================] - 1s 5ms/step - loss: 1.6125

145/145 [==============================] - 1s 6ms/step - loss: 1.6125 - val_loss: 0.4125
Epoch 7/20

  1/145 [..............................] - ETA: 1s - loss: 1.3797
  8/145 [>.............................] - ETA: 1s - loss: 1.4366
 18/145 [==>...........................] - ETA: 0s - loss: 1.4155
 28/145 [====>.........................] - ETA: 0s - loss: 1.4122
 35/145 [======>.......................] - ETA: 0s - loss: 1.4595
 44/145 [========>.....................] - ETA: 0s - loss: 1.4244
 55/145 [==========>...................] - ETA: 0s - loss: 1.4464
 66/145 [============>.................] - ETA: 0s - loss: 1.4534
 77/145 [==============>...............] - ETA: 0s - loss: 1.4565
 88/145 [=================>............] - ETA: 0s - loss: 1.4558
 99/145 [===================>..........] - ETA: 0s - loss: 1.4396
110/145 [=====================>........] - ETA: 0s - loss: 1.4300
121/145 [========================>.....] - ETA: 0s - loss: 1.4109
132/145 [==========================>...] - ETA: 0s - loss: 1.4028
142/145 [============================>.] - ETA: 0s - loss: 1.4008
145/145 [==============================] - 1s 5ms/step - loss: 1.3981

145/145 [==============================] - 1s 6ms/step - loss: 1.3981 - val_loss: 0.2959
Epoch 8/20

  1/145 [..............................] - ETA: 1s - loss: 0.9104
 10/145 [=>............................] - ETA: 0s - loss: 1.2762
 21/145 [===>..........................] - ETA: 0s - loss: 1.3011
 31/145 [=====>........................] - ETA: 0s - loss: 1.2499
 42/145 [=======>......................] - ETA: 0s - loss: 1.2723
 53/145 [=========>....................] - ETA: 0s - loss: 1.2516
 64/145 [============>.................] - ETA: 0s - loss: 1.2513
 75/145 [==============>...............] - ETA: 0s - loss: 1.2469
 85/145 [================>.............] - ETA: 0s - loss: 1.2243
 96/145 [==================>...........] - ETA: 0s - loss: 1.2238
107/145 [=====================>........] - ETA: 0s - loss: 1.2321
117/145 [=======================>......] - ETA: 0s - loss: 1.2317
128/145 [=========================>....] - ETA: 0s - loss: 1.2260
139/145 [===========================>..] - ETA: 0s - loss: 1.2180
145/145 [==============================] - 1s 5ms/step - loss: 1.2225

145/145 [==============================] - 1s 6ms/step - loss: 1.2225 - val_loss: 0.3566
Epoch 9/20

  1/145 [..............................] - ETA: 1s - loss: 0.9176
 10/145 [=>............................] - ETA: 0s - loss: 1.1608
 20/145 [===>..........................] - ETA: 0s - loss: 1.1806
 31/145 [=====>........................] - ETA: 0s - loss: 1.1855
 42/145 [=======>......................] - ETA: 0s - loss: 1.1916
 53/145 [=========>....................] - ETA: 0s - loss: 1.1903
 64/145 [============>.................] - ETA: 0s - loss: 1.1788
 75/145 [==============>...............] - ETA: 0s - loss: 1.1633
 86/145 [================>.............] - ETA: 0s - loss: 1.1535
 97/145 [===================>..........] - ETA: 0s - loss: 1.1419
108/145 [=====================>........] - ETA: 0s - loss: 1.1369
119/145 [=======================>......] - ETA: 0s - loss: 1.1377
130/145 [=========================>....] - ETA: 0s - loss: 1.1367
140/145 [===========================>..] - ETA: 0s - loss: 1.1345
145/145 [==============================] - 1s 5ms/step - loss: 1.1392

145/145 [==============================] - 1s 6ms/step - loss: 1.1392 - val_loss: 0.2703
Epoch 10/20

  1/145 [..............................] - ETA: 0s - loss: 0.7177
 10/145 [=>............................] - ETA: 0s - loss: 0.9945
 21/145 [===>..........................] - ETA: 0s - loss: 1.0305
 32/145 [=====>........................] - ETA: 0s - loss: 1.0724
 42/145 [=======>......................] - ETA: 0s - loss: 1.0901
 53/145 [=========>....................] - ETA: 0s - loss: 1.0879
 63/145 [============>.................] - ETA: 0s - loss: 1.0833
 74/145 [==============>...............] - ETA: 0s - loss: 1.0786
 84/145 [================>.............] - ETA: 0s - loss: 1.0907
 95/145 [==================>...........] - ETA: 0s - loss: 1.0924
106/145 [====================>.........] - ETA: 0s - loss: 1.0935
117/145 [=======================>......] - ETA: 0s - loss: 1.0880
128/145 [=========================>....] - ETA: 0s - loss: 1.0842
139/145 [===========================>..] - ETA: 0s - loss: 1.0795
145/145 [==============================] - 1s 5ms/step - loss: 1.0823

145/145 [==============================] - 1s 6ms/step - loss: 1.0823 - val_loss: 0.2235
Epoch 11/20

  1/145 [..............................] - ETA: 1s - loss: 0.9234
 10/145 [=>............................] - ETA: 0s - loss: 1.0393
 21/145 [===>..........................] - ETA: 0s - loss: 1.0970
 32/145 [=====>........................] - ETA: 0s - loss: 1.0911
 43/145 [=======>......................] - ETA: 0s - loss: 1.0702
 53/145 [=========>....................] - ETA: 0s - loss: 1.0555
 64/145 [============>.................] - ETA: 0s - loss: 1.0566
 75/145 [==============>...............] - ETA: 0s - loss: 1.0407
 86/145 [================>.............] - ETA: 0s - loss: 1.0333
 97/145 [===================>..........] - ETA: 0s - loss: 1.0310
108/145 [=====================>........] - ETA: 0s - loss: 1.0315
119/145 [=======================>......] - ETA: 0s - loss: 1.0294
130/145 [=========================>....] - ETA: 0s - loss: 1.0150
141/145 [============================>.] - ETA: 0s - loss: 1.0074
145/145 [==============================] - 1s 5ms/step - loss: 1.0092

145/145 [==============================] - 1s 6ms/step - loss: 1.0092 - val_loss: 0.1606
Epoch 12/20

  1/145 [..............................] - ETA: 1s - loss: 1.0959
 10/145 [=>............................] - ETA: 0s - loss: 1.0997
 20/145 [===>..........................] - ETA: 0s - loss: 1.1739
 31/145 [=====>........................] - ETA: 0s - loss: 1.1158
 40/145 [=======>......................] - ETA: 0s - loss: 1.1094
 51/145 [=========>....................] - ETA: 0s - loss: 1.0877
 61/145 [===========>..................] - ETA: 0s - loss: 1.0639
 72/145 [=============>................] - ETA: 0s - loss: 1.0319
 83/145 [================>.............] - ETA: 0s - loss: 1.0050
 94/145 [==================>...........] - ETA: 0s - loss: 0.9928
106/145 [====================>.........] - ETA: 0s - loss: 0.9815
117/145 [=======================>......] - ETA: 0s - loss: 0.9718
128/145 [=========================>....] - ETA: 0s - loss: 0.9592
134/145 [==========================>...] - ETA: 0s - loss: 0.9554
143/145 [============================>.] - ETA: 0s - loss: 0.9475
145/145 [==============================] - 1s 5ms/step - loss: 0.9474

145/145 [==============================] - 1s 6ms/step - loss: 0.9474 - val_loss: 0.1331
Epoch 13/20

  1/145 [..............................] - ETA: 1s - loss: 1.2933
 10/145 [=>............................] - ETA: 0s - loss: 0.9642
 21/145 [===>..........................] - ETA: 0s - loss: 1.0113
 32/145 [=====>........................] - ETA: 0s - loss: 0.9469
 43/145 [=======>......................] - ETA: 0s - loss: 0.9259
 54/145 [==========>...................] - ETA: 0s - loss: 0.9478
 65/145 [============>.................] - ETA: 0s - loss: 0.9404
 76/145 [==============>...............] - ETA: 0s - loss: 0.9475
 87/145 [=================>............] - ETA: 0s - loss: 0.9354
 98/145 [===================>..........] - ETA: 0s - loss: 0.9304
109/145 [=====================>........] - ETA: 0s - loss: 0.9263
120/145 [=======================>......] - ETA: 0s - loss: 0.9331
131/145 [==========================>...] - ETA: 0s - loss: 0.9292
142/145 [============================>.] - ETA: 0s - loss: 0.9305
145/145 [==============================] - 1s 5ms/step - loss: 0.9306

145/145 [==============================] - 1s 6ms/step - loss: 0.9306 - val_loss: 0.0494
Epoch 14/20

  1/145 [..............................] - ETA: 1s - loss: 1.3148
  9/145 [>.............................] - ETA: 0s - loss: 0.9497
 19/145 [==>...........................] - ETA: 0s - loss: 0.9796
 29/145 [=====>........................] - ETA: 0s - loss: 0.9708
 40/145 [=======>......................] - ETA: 0s - loss: 1.0004
 51/145 [=========>....................] - ETA: 0s - loss: 0.9955
 62/145 [===========>..................] - ETA: 0s - loss: 1.0031
 73/145 [==============>...............] - ETA: 0s - loss: 0.9821
 84/145 [================>.............] - ETA: 0s - loss: 1.0005
 95/145 [==================>...........] - ETA: 0s - loss: 0.9823
106/145 [====================>.........] - ETA: 0s - loss: 0.9760
117/145 [=======================>......] - ETA: 0s - loss: 0.9699
128/145 [=========================>....] - ETA: 0s - loss: 0.9751
139/145 [===========================>..] - ETA: 0s - loss: 0.9703
145/145 [==============================] - 1s 5ms/step - loss: 0.9719

145/145 [==============================] - 1s 6ms/step - loss: 0.9719 - val_loss: 0.0665
Epoch 15/20

  1/145 [..............................] - ETA: 0s - loss: 1.0839
 10/145 [=>............................] - ETA: 0s - loss: 0.9706
 21/145 [===>..........................] - ETA: 0s - loss: 0.9496
 32/145 [=====>........................] - ETA: 0s - loss: 0.9541
 43/145 [=======>......................] - ETA: 0s - loss: 1.0027
 54/145 [==========>...................] - ETA: 0s - loss: 1.0247
 65/145 [============>.................] - ETA: 0s - loss: 1.0258
 76/145 [==============>...............] - ETA: 0s - loss: 1.0422
 87/145 [=================>............] - ETA: 0s - loss: 1.0377
 97/145 [===================>..........] - ETA: 0s - loss: 1.0383
108/145 [=====================>........] - ETA: 0s - loss: 1.0199
119/145 [=======================>......] - ETA: 0s - loss: 1.0224
130/145 [=========================>....] - ETA: 0s - loss: 1.0136
141/145 [============================>.] - ETA: 0s - loss: 0.9983
145/145 [==============================] - 1s 5ms/step - loss: 1.0049

145/145 [==============================] - 1s 6ms/step - loss: 1.0049 - val_loss: 0.0665
Epoch 16/20

  1/145 [..............................] - ETA: 1s - loss: 0.7695
 10/145 [=>............................] - ETA: 0s - loss: 1.1915
 21/145 [===>..........................] - ETA: 0s - loss: 1.1848
 32/145 [=====>........................] - ETA: 0s - loss: 1.1462
 43/145 [=======>......................] - ETA: 0s - loss: 1.1450
 54/145 [==========>...................] - ETA: 0s - loss: 1.1031
 65/145 [============>.................] - ETA: 0s - loss: 1.0656
 76/145 [==============>...............] - ETA: 0s - loss: 1.0481
 87/145 [=================>............] - ETA: 0s - loss: 1.0312
 98/145 [===================>..........] - ETA: 0s - loss: 1.0389
109/145 [=====================>........] - ETA: 0s - loss: 1.0153
116/145 [=======================>......] - ETA: 0s - loss: 1.0050
126/145 [=========================>....] - ETA: 0s - loss: 1.0029
136/145 [===========================>..] - ETA: 0s - loss: 0.9983
145/145 [==============================] - 1s 5ms/step - loss: 0.9961

145/145 [==============================] - 1s 6ms/step - loss: 0.9961 - val_loss: 0.0411
Epoch 17/20

  1/145 [..............................] - ETA: 1s - loss: 0.4677
 10/145 [=>............................] - ETA: 0s - loss: 1.0510
 20/145 [===>..........................] - ETA: 0s - loss: 1.0894
 31/145 [=====>........................] - ETA: 0s - loss: 1.0569
 41/145 [=======>......................] - ETA: 0s - loss: 1.0424
 52/145 [=========>....................] - ETA: 0s - loss: 1.0108
 62/145 [===========>..................] - ETA: 0s - loss: 1.0083
 73/145 [==============>...............] - ETA: 0s - loss: 1.0259
 84/145 [================>.............] - ETA: 0s - loss: 1.0267
 90/145 [=================>............] - ETA: 0s - loss: 1.0323
 97/145 [===================>..........] - ETA: 0s - loss: 1.0229
106/145 [====================>.........] - ETA: 0s - loss: 1.0186
109/145 [=====================>........] - ETA: 0s - loss: 1.0208
116/145 [=======================>......] - ETA: 0s - loss: 1.0326
123/145 [========================>.....] - ETA: 0s - loss: 1.0285
128/145 [=========================>....] - ETA: 0s - loss: 1.0293
135/145 [==========================>...] - ETA: 0s - loss: 1.0256
141/145 [============================>.] - ETA: 0s - loss: 1.0257
145/145 [==============================] - 1s 7ms/step - loss: 1.0285

145/145 [==============================] - 1s 8ms/step - loss: 1.0285 - val_loss: 0.0414
Epoch 18/20

  1/145 [..............................] - ETA: 1s - loss: 1.1976
  3/145 [..............................] - ETA: 4s - loss: 1.2672
  7/145 [>.............................] - ETA: 3s - loss: 1.3874
 16/145 [==>...........................] - ETA: 1s - loss: 1.3621
 26/145 [====>.........................] - ETA: 1s - loss: 1.3231
 37/145 [======>.......................] - ETA: 0s - loss: 1.2577
 48/145 [========>.....................] - ETA: 0s - loss: 1.2372
 59/145 [===========>..................] - ETA: 0s - loss: 1.2117
 70/145 [=============>................] - ETA: 0s - loss: 1.2113
 81/145 [===============>..............] - ETA: 0s - loss: 1.1984
 91/145 [=================>............] - ETA: 0s - loss: 1.1845
102/145 [====================>.........] - ETA: 0s - loss: 1.1717
113/145 [======================>.......] - ETA: 0s - loss: 1.1626
124/145 [========================>.....] - ETA: 0s - loss: 1.1500
134/145 [==========================>...] - ETA: 0s - loss: 1.1410
144/145 [============================>.] - ETA: 0s - loss: 1.1510
145/145 [==============================] - 1s 6ms/step - loss: 1.1515

145/145 [==============================] - 1s 7ms/step - loss: 1.1515 - val_loss: 0.0455
Epoch 19/20

  1/145 [..............................] - ETA: 0s - loss: 1.8353
 10/145 [=>............................] - ETA: 0s - loss: 1.4278
 20/145 [===>..........................] - ETA: 0s - loss: 1.3412
 31/145 [=====>........................] - ETA: 0s - loss: 1.2940
 39/145 [=======>......................] - ETA: 0s - loss: 1.2782
 45/145 [========>.....................] - ETA: 0s - loss: 1.2622
 54/145 [==========>...................] - ETA: 0s - loss: 1.2228
 64/145 [============>.................] - ETA: 0s - loss: 1.1964
 69/145 [=============>................] - ETA: 0s - loss: 1.1846
 79/145 [===============>..............] - ETA: 0s - loss: 1.1518
 90/145 [=================>............] - ETA: 0s - loss: 1.1547
101/145 [===================>..........] - ETA: 0s - loss: 1.1493
111/145 [=====================>........] - ETA: 0s - loss: 1.1427
121/145 [========================>.....] - ETA: 0s - loss: 1.1469
131/145 [==========================>...] - ETA: 0s - loss: 1.1351
141/145 [============================>.] - ETA: 0s - loss: 1.1362
145/145 [==============================] - 1s 6ms/step - loss: 1.1385

145/145 [==============================] - 1s 7ms/step - loss: 1.1385 - val_loss: 0.0671
Epoch 20/20

  1/145 [..............................] - ETA: 0s - loss: 1.2627
 10/145 [=>............................] - ETA: 0s - loss: 2.4640
 20/145 [===>..........................] - ETA: 0s - loss: 2.0883
 31/145 [=====>........................] - ETA: 0s - loss: 1.8278
 42/145 [=======>......................] - ETA: 0s - loss: 1.6576
 53/145 [=========>....................] - ETA: 0s - loss: 1.5847
 64/145 [============>.................] - ETA: 0s - loss: 1.4868
 75/145 [==============>...............] - ETA: 0s - loss: 1.4397
 86/145 [================>.............] - ETA: 0s - loss: 1.3812
 97/145 [===================>..........] - ETA: 0s - loss: 1.3432
108/145 [=====================>........] - ETA: 0s - loss: 1.3251
118/145 [=======================>......] - ETA: 0s - loss: 1.3224
129/145 [=========================>....] - ETA: 0s - loss: 1.2958
140/145 [===========================>..] - ETA: 0s - loss: 1.2828
145/145 [==============================] - 1s 5ms/step - loss: 1.2791

145/145 [==============================] - 1s 6ms/step - loss: 1.2791 - val_loss: 0.1387
kerasPrediction<-model %>% predict(as.matrix(carbonTestingFinal))
2024-05-06 19:42:45.149805: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

 1/63 [..............................] - ETA: 3s
18/63 [=======>......................] - ETA: 0s
43/63 [===================>..........] - ETA: 0s
63/63 [==============================] - 0s 2ms/step

63/63 [==============================] - 0s 2ms/step
rmse=function(x,y){
  return((mean(x-y)^2)^0.5)
}

rmse(kerasPrediction,carbonTestLabels)
[1] 0.2827712
MAE(kerasPrediction,carbonTestLabels)
[1] 0.3099322
rsquared<-sum((kerasPrediction-carbonTestLabels)^2)/sum((carbonTestLabels-mean(carbonTestLabels))^2)
rsquared
[1] 0.7408867
library(tfruns)
runs<-tuning_run(
  "carbonEmission.R",
  flags=list(
    learning_rate=c(0.1,0.5,0.01,0.001),
    nodes1=c(8,16,32,64,128),
    nodes2=c(8,16,32,64,128),
    nodes3=c(8,16,32,64,128),
    batch_size=c(16,32,64,128),
    dropout=c(0.1,0.2,0.3,0.4,0.5),
    activation=c("relu")
  ),sample=0.001
)
10,000 total combinations of flags 
(sampled to 10 combinations)
y
Training run 1/10 (flags = list(0.01, 64, 128, 8, 16, 0.3, "relu")) 
Using run directory runs/2024-05-07T00-42-50Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:42:52.758485: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0060s vs `on_train_batch_end` time: 0.0102s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0060s vs `on_train_batch_end` time: 0.0102s). Check your callbacks.
2024-05-06 19:42:55.631617: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
451/451 - 5s - loss: 4.5205 - val_loss: 0.4005 - 5s/epoch - 11ms/step
Epoch 2/20
451/451 - 3s - loss: 0.4233 - val_loss: 0.4380 - 3s/epoch - 7ms/step
Epoch 3/20
451/451 - 4s - loss: 0.2020 - val_loss: 0.8268 - 4s/epoch - 10ms/step
Epoch 4/20
451/451 - 3s - loss: 0.1136 - val_loss: 0.8045 - 3s/epoch - 7ms/step
Epoch 5/20
451/451 - 3s - loss: 0.0774 - val_loss: 0.9548 - 3s/epoch - 8ms/step
Epoch 6/20
451/451 - 3s - loss: 0.0675 - val_loss: 0.8364 - 3s/epoch - 7ms/step
Epoch 7/20
451/451 - 3s - loss: 0.0749 - val_loss: 0.6173 - 3s/epoch - 7ms/step
Epoch 8/20
451/451 - 3s - loss: 0.1461 - val_loss: 0.5754 - 3s/epoch - 6ms/step
Epoch 9/20
451/451 - 4s - loss: 0.1720 - val_loss: 0.6730 - 4s/epoch - 9ms/step
Epoch 10/20
451/451 - 4s - loss: 0.1697 - val_loss: 1.0733 - 4s/epoch - 8ms/step
Epoch 11/20
451/451 - 3s - loss: 0.2268 - val_loss: 1.8652 - 3s/epoch - 7ms/step
Epoch 12/20
451/451 - 3s - loss: 0.2462 - val_loss: 3.5136 - 3s/epoch - 6ms/step
Epoch 13/20
451/451 - 3s - loss: 0.3646 - val_loss: 3.4387 - 3s/epoch - 7ms/step
Epoch 14/20
451/451 - 3s - loss: 0.2858 - val_loss: 5.3962 - 3s/epoch - 6ms/step
Epoch 15/20
451/451 - 3s - loss: 0.4880 - val_loss: 5.5874 - 3s/epoch - 6ms/step
Epoch 16/20
451/451 - 3s - loss: 0.2290 - val_loss: 6.1486 - 3s/epoch - 6ms/step
Epoch 17/20
451/451 - 3s - loss: 0.5407 - val_loss: 6.6616 - 3s/epoch - 6ms/step
Epoch 18/20
451/451 - 3s - loss: 0.2750 - val_loss: 5.1347 - 3s/epoch - 6ms/step
Epoch 19/20
451/451 - 3s - loss: 0.7823 - val_loss: 6.0686 - 3s/epoch - 7ms/step
Epoch 20/20
451/451 - 3s - loss: 0.2407 - val_loss: 6.4525 - 3s/epoch - 6ms/step

Run completed: runs/2024-05-07T00-42-50Z

Training run 2/10 (flags = list(0.1, 64, 32, 64, 32, 0.5, "relu")) 
Using run directory runs/2024-05-07T00-43-56Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:43:59.199273: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0057s vs `on_train_batch_end` time: 0.0093s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0057s vs `on_train_batch_end` time: 0.0093s). Check your callbacks.
2024-05-06 19:44:00.902248: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
226/226 - 5s - loss: 14.3461 - val_loss: 3.2779 - 5s/epoch - 23ms/step
Epoch 2/20
226/226 - 2s - loss: 2.3126 - val_loss: 2.0409 - 2s/epoch - 11ms/step
Epoch 3/20
226/226 - 2s - loss: 1.2771 - val_loss: 1.5950 - 2s/epoch - 8ms/step
Epoch 4/20
226/226 - 2s - loss: 0.8722 - val_loss: 1.2679 - 2s/epoch - 7ms/step
Epoch 5/20
226/226 - 2s - loss: 0.6546 - val_loss: 1.4245 - 2s/epoch - 9ms/step
Epoch 6/20
226/226 - 2s - loss: 0.5112 - val_loss: 1.6146 - 2s/epoch - 10ms/step
Epoch 7/20
226/226 - 2s - loss: 0.4576 - val_loss: 1.4389 - 2s/epoch - 8ms/step
Epoch 8/20
226/226 - 2s - loss: 0.4060 - val_loss: 1.8662 - 2s/epoch - 9ms/step
Epoch 9/20
226/226 - 2s - loss: 0.3691 - val_loss: 1.5593 - 2s/epoch - 9ms/step
Epoch 10/20
226/226 - 2s - loss: 0.3522 - val_loss: 1.6031 - 2s/epoch - 7ms/step
Epoch 11/20
226/226 - 2s - loss: 0.3336 - val_loss: 1.8204 - 2s/epoch - 7ms/step
Epoch 12/20
226/226 - 2s - loss: 0.3520 - val_loss: 2.7458 - 2s/epoch - 10ms/step
Epoch 13/20
226/226 - 2s - loss: 0.3466 - val_loss: 2.5845 - 2s/epoch - 7ms/step
Epoch 14/20
226/226 - 2s - loss: 0.5042 - val_loss: 2.2117 - 2s/epoch - 7ms/step
Epoch 15/20
226/226 - 2s - loss: 0.4170 - val_loss: 2.3097 - 2s/epoch - 9ms/step
Epoch 16/20
226/226 - 2s - loss: 0.7537 - val_loss: 1.5459 - 2s/epoch - 8ms/step
Epoch 17/20
226/226 - 2s - loss: 0.6456 - val_loss: 3.3727 - 2s/epoch - 8ms/step
Epoch 18/20
226/226 - 2s - loss: 0.8647 - val_loss: 2.2160 - 2s/epoch - 9ms/step
Epoch 19/20
226/226 - 2s - loss: 3.1060 - val_loss: 3.0374 - 2s/epoch - 7ms/step
Epoch 20/20
226/226 - 2s - loss: 1.0103 - val_loss: 1.9587 - 2s/epoch - 8ms/step

Run completed: runs/2024-05-07T00-43-56Z

Training run 3/10 (flags = list(0.01, 16, 32, 16, 32, 0.1, "relu")) 
Using run directory runs/2024-05-07T00-44-37Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:44:38.417896: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0062s vs `on_train_batch_end` time: 0.0115s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0062s vs `on_train_batch_end` time: 0.0115s). Check your callbacks.
2024-05-06 19:44:42.894193: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
226/226 - 5s - loss: 11.3299 - val_loss: 0.8747 - 5s/epoch - 24ms/step
Epoch 2/20
226/226 - 2s - loss: 2.9246 - val_loss: 0.6621 - 2s/epoch - 11ms/step
Epoch 3/20
226/226 - 2s - loss: 1.6391 - val_loss: 0.6023 - 2s/epoch - 10ms/step
Epoch 4/20
226/226 - 2s - loss: 0.9053 - val_loss: 0.7329 - 2s/epoch - 10ms/step
Epoch 5/20
226/226 - 2s - loss: 0.5261 - val_loss: 1.1103 - 2s/epoch - 10ms/step
Epoch 6/20
226/226 - 2s - loss: 0.3653 - val_loss: 1.1065 - 2s/epoch - 7ms/step
Epoch 7/20
226/226 - 2s - loss: 0.3033 - val_loss: 0.9268 - 2s/epoch - 8ms/step
Epoch 8/20
226/226 - 2s - loss: 0.2484 - val_loss: 1.1910 - 2s/epoch - 9ms/step
Epoch 9/20
226/226 - 2s - loss: 0.2362 - val_loss: 1.0927 - 2s/epoch - 9ms/step
Epoch 10/20
226/226 - 2s - loss: 0.2023 - val_loss: 1.1800 - 2s/epoch - 8ms/step
Epoch 11/20
226/226 - 2s - loss: 0.1806 - val_loss: 1.1348 - 2s/epoch - 9ms/step
Epoch 12/20
226/226 - 2s - loss: 0.1748 - val_loss: 0.8917 - 2s/epoch - 8ms/step
Epoch 13/20
226/226 - 2s - loss: 0.1582 - val_loss: 1.3242 - 2s/epoch - 7ms/step
Epoch 14/20
226/226 - 2s - loss: 0.1353 - val_loss: 0.9758 - 2s/epoch - 7ms/step
Epoch 15/20
226/226 - 2s - loss: 0.1355 - val_loss: 1.3543 - 2s/epoch - 8ms/step
Epoch 16/20
226/226 - 2s - loss: 0.1270 - val_loss: 1.8962 - 2s/epoch - 8ms/step
Epoch 17/20
226/226 - 2s - loss: 0.1327 - val_loss: 2.2965 - 2s/epoch - 8ms/step
Epoch 18/20
226/226 - 2s - loss: 0.1413 - val_loss: 1.6279 - 2s/epoch - 8ms/step
Epoch 19/20
226/226 - 2s - loss: 0.1550 - val_loss: 1.5583 - 2s/epoch - 7ms/step
Epoch 20/20
226/226 - 2s - loss: 0.1534 - val_loss: 1.1836 - 2s/epoch - 7ms/step

Run completed: runs/2024-05-07T00-44-37Z

Training run 4/10 (flags = list(0.01, 128, 8, 128, 128, 0.3, "relu")) 
Using run directory runs/2024-05-07T00-45-19Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:45:22.172741: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0060s vs `on_train_batch_end` time: 0.0094s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0060s vs `on_train_batch_end` time: 0.0094s). Check your callbacks.
2024-05-06 19:45:24.718914: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
57/57 - 3s - loss: 21.1251 - val_loss: 1.5118 - 3s/epoch - 59ms/step
Epoch 2/20
57/57 - 0s - loss: 6.1987 - val_loss: 0.4771 - 458ms/epoch - 8ms/step
Epoch 3/20
57/57 - 1s - loss: 4.4051 - val_loss: 0.2806 - 1s/epoch - 22ms/step
Epoch 4/20
57/57 - 0s - loss: 3.7106 - val_loss: 0.2391 - 442ms/epoch - 8ms/step
Epoch 5/20
57/57 - 1s - loss: 3.0778 - val_loss: 0.1993 - 1s/epoch - 18ms/step
Epoch 6/20
57/57 - 1s - loss: 2.5263 - val_loss: 0.1953 - 743ms/epoch - 13ms/step
Epoch 7/20
57/57 - 1s - loss: 1.7711 - val_loss: 0.1573 - 921ms/epoch - 16ms/step
Epoch 8/20
57/57 - 0s - loss: 0.9103 - val_loss: 0.1378 - 447ms/epoch - 8ms/step
Epoch 9/20
57/57 - 1s - loss: 0.4535 - val_loss: 0.1291 - 728ms/epoch - 13ms/step
Epoch 10/20
57/57 - 0s - loss: 0.2738 - val_loss: 0.1046 - 444ms/epoch - 8ms/step
Epoch 11/20
57/57 - 1s - loss: 0.2211 - val_loss: 0.1144 - 690ms/epoch - 12ms/step
Epoch 12/20
57/57 - 1s - loss: 0.1963 - val_loss: 0.0547 - 740ms/epoch - 13ms/step
Epoch 13/20
57/57 - 0s - loss: 0.1874 - val_loss: 0.0956 - 443ms/epoch - 8ms/step
Epoch 14/20
57/57 - 1s - loss: 0.1646 - val_loss: 0.0446 - 1s/epoch - 18ms/step
Epoch 15/20
57/57 - 1s - loss: 0.1588 - val_loss: 0.0288 - 962ms/epoch - 17ms/step
Epoch 16/20
57/57 - 1s - loss: 0.1845 - val_loss: 0.0203 - 729ms/epoch - 13ms/step
Epoch 17/20
57/57 - 0s - loss: 0.1786 - val_loss: 0.0361 - 458ms/epoch - 8ms/step
Epoch 18/20
57/57 - 1s - loss: 0.2073 - val_loss: 0.1647 - 676ms/epoch - 12ms/step
Epoch 19/20
57/57 - 1s - loss: 0.2029 - val_loss: 0.0998 - 721ms/epoch - 13ms/step
Epoch 20/20
57/57 - 0s - loss: 0.2267 - val_loss: 0.0275 - 439ms/epoch - 8ms/step

Run completed: runs/2024-05-07T00-45-19Z

Training run 5/10 (flags = list(0.01, 8, 32, 32, 16, 0.3, "relu")) 
Using run directory runs/2024-05-07T00-45-38Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:45:39.575838: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0061s vs `on_train_batch_end` time: 0.0103s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0061s vs `on_train_batch_end` time: 0.0103s). Check your callbacks.
2024-05-06 19:45:44.887951: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
451/451 - 7s - loss: 13.4441 - val_loss: 2.1683 - 7s/epoch - 16ms/step
Epoch 2/20
451/451 - 4s - loss: 1.7129 - val_loss: 1.7100 - 4s/epoch - 8ms/step
Epoch 3/20
451/451 - 3s - loss: 1.0867 - val_loss: 1.6948 - 3s/epoch - 6ms/step
Epoch 4/20
451/451 - 3s - loss: 0.8299 - val_loss: 0.8653 - 3s/epoch - 7ms/step
Epoch 5/20
451/451 - 3s - loss: 0.4791 - val_loss: 1.1193 - 3s/epoch - 6ms/step
Epoch 6/20
451/451 - 3s - loss: 0.4448 - val_loss: 0.5661 - 3s/epoch - 8ms/step
Epoch 7/20
451/451 - 3s - loss: 0.6548 - val_loss: 0.8835 - 3s/epoch - 7ms/step
Epoch 8/20
451/451 - 3s - loss: 1.0771 - val_loss: 1.3313 - 3s/epoch - 6ms/step
Epoch 9/20
451/451 - 3s - loss: 1.1615 - val_loss: 0.6273 - 3s/epoch - 7ms/step
Epoch 10/20
451/451 - 3s - loss: 2.2614 - val_loss: 8.0941 - 3s/epoch - 7ms/step
Epoch 11/20
451/451 - 3s - loss: 1.7852 - val_loss: 29.5401 - 3s/epoch - 7ms/step
Epoch 12/20
451/451 - 3s - loss: 1.7933 - val_loss: 72.5029 - 3s/epoch - 7ms/step
Epoch 13/20
451/451 - 3s - loss: 1.1154 - val_loss: 90.1913 - 3s/epoch - 7ms/step
Epoch 14/20
451/451 - 3s - loss: 1.0355 - val_loss: 124.6499 - 3s/epoch - 7ms/step
Epoch 15/20
451/451 - 3s - loss: 0.7773 - val_loss: 130.9595 - 3s/epoch - 7ms/step
Epoch 16/20
451/451 - 3s - loss: 0.6462 - val_loss: 146.5425 - 3s/epoch - 7ms/step
Epoch 17/20
451/451 - 3s - loss: 0.5830 - val_loss: 135.5791 - 3s/epoch - 7ms/step
Epoch 18/20
451/451 - 3s - loss: 0.8807 - val_loss: 116.1140 - 3s/epoch - 7ms/step
Epoch 19/20
451/451 - 3s - loss: 1.4421 - val_loss: 85.4320 - 3s/epoch - 7ms/step
Epoch 20/20
451/451 - 3s - loss: 1.6305 - val_loss: 68.1109 - 3s/epoch - 7ms/step

Run completed: runs/2024-05-07T00-45-38Z

Training run 6/10 (flags = list(0.1, 16, 128, 64, 16, 0.3, "relu")) 
Using run directory runs/2024-05-07T00-46-45Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:46:46.473419: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0067s vs `on_train_batch_end` time: 0.0103s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0067s vs `on_train_batch_end` time: 0.0103s). Check your callbacks.
2024-05-06 19:46:51.933581: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
451/451 - 7s - loss: 4.9497 - val_loss: 0.6491 - 7s/epoch - 15ms/step
Epoch 2/20
451/451 - 3s - loss: 1.1165 - val_loss: 1.0126 - 3s/epoch - 8ms/step
Epoch 3/20
451/451 - 3s - loss: 0.5470 - val_loss: 2.5428 - 3s/epoch - 7ms/step
Epoch 4/20
451/451 - 3s - loss: 0.4018 - val_loss: 3.2496 - 3s/epoch - 7ms/step
Epoch 5/20
451/451 - 3s - loss: 0.4970 - val_loss: 10.9413 - 3s/epoch - 7ms/step
Epoch 6/20
451/451 - 3s - loss: 0.6579 - val_loss: 27.3845 - 3s/epoch - 7ms/step
Epoch 7/20
451/451 - 3s - loss: 1.1860 - val_loss: 29.6661 - 3s/epoch - 7ms/step
Epoch 8/20
451/451 - 3s - loss: 1.0036 - val_loss: 40.4824 - 3s/epoch - 6ms/step
Epoch 9/20
451/451 - 3s - loss: 1.8350 - val_loss: 64.6819 - 3s/epoch - 6ms/step
Epoch 10/20
451/451 - 3s - loss: 2.5249 - val_loss: 84.0588 - 3s/epoch - 7ms/step
Epoch 11/20
451/451 - 3s - loss: 0.7133 - val_loss: 116.0839 - 3s/epoch - 6ms/step
Epoch 12/20
451/451 - 3s - loss: 1.6769 - val_loss: 146.3577 - 3s/epoch - 6ms/step
Epoch 13/20
451/451 - 3s - loss: 1.2271 - val_loss: 135.2326 - 3s/epoch - 6ms/step
Epoch 14/20
451/451 - 3s - loss: 4.7599 - val_loss: 44.5545 - 3s/epoch - 6ms/step
Epoch 15/20
451/451 - 3s - loss: 3.2621 - val_loss: 147.3202 - 3s/epoch - 6ms/step
Epoch 16/20
451/451 - 3s - loss: 1.4628 - val_loss: 192.1331 - 3s/epoch - 6ms/step
Epoch 17/20
451/451 - 3s - loss: 6.8850 - val_loss: 217.9560 - 3s/epoch - 6ms/step
Epoch 18/20
451/451 - 3s - loss: 0.6509 - val_loss: 241.0453 - 3s/epoch - 6ms/step
Epoch 19/20
451/451 - 3s - loss: 1.8630 - val_loss: 352.0300 - 3s/epoch - 6ms/step
Epoch 20/20
451/451 - 3s - loss: 2.8394 - val_loss: 425.2216 - 3s/epoch - 6ms/step

Run completed: runs/2024-05-07T00-46-45Z

Training run 7/10 (flags = list(0.1, 64, 32, 128, 64, 0.3, "relu")) 
Using run directory runs/2024-05-07T00-47-50Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:47:50.751923: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0065s vs `on_train_batch_end` time: 0.0105s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0065s vs `on_train_batch_end` time: 0.0105s). Check your callbacks.
2024-05-06 19:47:54.365512: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
113/113 - 5s - loss: 12.4502 - val_loss: 0.4850 - 5s/epoch - 42ms/step
Epoch 2/20
113/113 - 1s - loss: 2.6941 - val_loss: 0.2250 - 1s/epoch - 12ms/step
Epoch 3/20
113/113 - 1s - loss: 1.6491 - val_loss: 0.1194 - 1s/epoch - 9ms/step
Epoch 4/20
113/113 - 2s - loss: 1.1856 - val_loss: 0.1422 - 2s/epoch - 14ms/step
Epoch 5/20
113/113 - 1s - loss: 0.9046 - val_loss: 0.1761 - 1s/epoch - 12ms/step
Epoch 6/20
113/113 - 1s - loss: 0.7783 - val_loss: 0.2094 - 1s/epoch - 9ms/step
Epoch 7/20
113/113 - 1s - loss: 0.6274 - val_loss: 0.3228 - 1s/epoch - 12ms/step
Epoch 8/20
113/113 - 1s - loss: 0.5675 - val_loss: 0.4505 - 752ms/epoch - 7ms/step
Epoch 9/20
113/113 - 1s - loss: 0.4984 - val_loss: 0.3619 - 1s/epoch - 11ms/step
Epoch 10/20
113/113 - 1s - loss: 0.5197 - val_loss: 0.3234 - 1s/epoch - 11ms/step
Epoch 11/20
113/113 - 1s - loss: 0.4596 - val_loss: 0.6033 - 1s/epoch - 9ms/step
Epoch 12/20
113/113 - 1s - loss: 0.4506 - val_loss: 0.7246 - 1s/epoch - 9ms/step
Epoch 13/20
113/113 - 1s - loss: 0.4010 - val_loss: 0.5564 - 1s/epoch - 9ms/step
Epoch 14/20
113/113 - 1s - loss: 0.3933 - val_loss: 1.0406 - 1s/epoch - 9ms/step
Epoch 15/20
113/113 - 1s - loss: 0.3958 - val_loss: 0.8440 - 1s/epoch - 11ms/step
Epoch 16/20
113/113 - 1s - loss: 0.3832 - val_loss: 1.0860 - 1s/epoch - 10ms/step
Epoch 17/20
113/113 - 1s - loss: 0.3745 - val_loss: 1.7516 - 1s/epoch - 10ms/step
Epoch 18/20
113/113 - 1s - loss: 0.3701 - val_loss: 0.9606 - 1s/epoch - 12ms/step
Epoch 19/20
113/113 - 1s - loss: 0.3326 - val_loss: 1.1989 - 760ms/epoch - 7ms/step
Epoch 20/20
113/113 - 1s - loss: 0.5680 - val_loss: 1.1021 - 1s/epoch - 12ms/step

Run completed: runs/2024-05-07T00-47-50Z

Training run 8/10 (flags = list(0.001, 16, 32, 64, 128, 0.2, "relu")) 
Using run directory runs/2024-05-07T00-48-17Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:48:20.610911: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0069s vs `on_train_batch_end` time: 0.0627s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0069s vs `on_train_batch_end` time: 0.0627s). Check your callbacks.
2024-05-06 19:48:21.814358: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
57/57 - 5s - loss: 22.3041 - val_loss: 2.8608 - 5s/epoch - 83ms/step
Epoch 2/20
57/57 - 0s - loss: 5.5865 - val_loss: 1.0446 - 455ms/epoch - 8ms/step
Epoch 3/20
57/57 - 1s - loss: 4.1542 - val_loss: 0.6797 - 1s/epoch - 18ms/step
Epoch 4/20
57/57 - 0s - loss: 3.4006 - val_loss: 0.4687 - 447ms/epoch - 8ms/step
Epoch 5/20
57/57 - 0s - loss: 3.0850 - val_loss: 0.4654 - 461ms/epoch - 8ms/step
Epoch 6/20
57/57 - 1s - loss: 2.6984 - val_loss: 0.4543 - 736ms/epoch - 13ms/step
Epoch 7/20
57/57 - 1s - loss: 2.4992 - val_loss: 0.3528 - 1s/epoch - 19ms/step
Epoch 8/20
57/57 - 1s - loss: 2.3194 - val_loss: 0.2989 - 1s/epoch - 18ms/step
Epoch 9/20
57/57 - 1s - loss: 2.2032 - val_loss: 0.1999 - 765ms/epoch - 13ms/step
Epoch 10/20
57/57 - 0s - loss: 1.9163 - val_loss: 0.3407 - 449ms/epoch - 8ms/step
Epoch 11/20
57/57 - 1s - loss: 1.8562 - val_loss: 0.3737 - 737ms/epoch - 13ms/step
Epoch 12/20
57/57 - 1s - loss: 1.7622 - val_loss: 0.2780 - 735ms/epoch - 13ms/step
Epoch 13/20
57/57 - 0s - loss: 1.7513 - val_loss: 0.2511 - 457ms/epoch - 8ms/step
Epoch 14/20
57/57 - 1s - loss: 1.7762 - val_loss: 0.3243 - 757ms/epoch - 13ms/step
Epoch 15/20
57/57 - 1s - loss: 1.6476 - val_loss: 0.2067 - 928ms/epoch - 16ms/step
Epoch 16/20
57/57 - 1s - loss: 1.6757 - val_loss: 0.4440 - 1s/epoch - 18ms/step
Epoch 17/20
57/57 - 1s - loss: 1.6551 - val_loss: 0.4578 - 1s/epoch - 23ms/step
Epoch 18/20
57/57 - 0s - loss: 1.7856 - val_loss: 0.3688 - 449ms/epoch - 8ms/step
Epoch 19/20
57/57 - 0s - loss: 1.6913 - val_loss: 0.2022 - 460ms/epoch - 8ms/step
Epoch 20/20
57/57 - 1s - loss: 1.7090 - val_loss: 0.3874 - 1s/epoch - 18ms/step

Run completed: runs/2024-05-07T00-48-17Z

Training run 9/10 (flags = list(0.1, 32, 16, 64, 64, 0.1, "relu")) 
Using run directory runs/2024-05-07T00-48-37Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:48:39.568393: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0059s vs `on_train_batch_end` time: 0.0098s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0059s vs `on_train_batch_end` time: 0.0098s). Check your callbacks.
2024-05-06 19:48:41.908953: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
113/113 - 3s - loss: 20.2791 - val_loss: 0.9935 - 3s/epoch - 28ms/step
Epoch 2/20
113/113 - 2s - loss: 3.5698 - val_loss: 0.3433 - 2s/epoch - 15ms/step
Epoch 3/20
113/113 - 1s - loss: 2.7130 - val_loss: 0.2677 - 773ms/epoch - 7ms/step
Epoch 4/20
113/113 - 1s - loss: 2.1445 - val_loss: 0.1247 - 1s/epoch - 9ms/step
Epoch 5/20
113/113 - 1s - loss: 1.7315 - val_loss: 0.2425 - 759ms/epoch - 7ms/step
Epoch 6/20
113/113 - 2s - loss: 1.4882 - val_loss: 0.1598 - 2s/epoch - 15ms/step
Epoch 7/20
113/113 - 1s - loss: 1.3584 - val_loss: 0.1821 - 1s/epoch - 10ms/step
Epoch 8/20
113/113 - 1s - loss: 1.2617 - val_loss: 0.1311 - 1s/epoch - 12ms/step
Epoch 9/20
113/113 - 1s - loss: 1.1346 - val_loss: 0.1783 - 745ms/epoch - 7ms/step
Epoch 10/20
113/113 - 1s - loss: 1.0242 - val_loss: 0.1701 - 1s/epoch - 9ms/step
Epoch 11/20
113/113 - 2s - loss: 0.9074 - val_loss: 0.1820 - 2s/epoch - 19ms/step
Epoch 12/20
113/113 - 1s - loss: 0.8492 - val_loss: 0.1924 - 768ms/epoch - 7ms/step
Epoch 13/20
113/113 - 2s - loss: 0.9142 - val_loss: 0.1555 - 2s/epoch - 14ms/step
Epoch 14/20
113/113 - 1s - loss: 0.9461 - val_loss: 0.2216 - 742ms/epoch - 7ms/step
Epoch 15/20
113/113 - 1s - loss: 0.9353 - val_loss: 0.2312 - 1s/epoch - 9ms/step
Epoch 16/20
113/113 - 1s - loss: 0.8900 - val_loss: 0.2293 - 738ms/epoch - 7ms/step
Epoch 17/20
113/113 - 1s - loss: 0.8228 - val_loss: 0.2521 - 1s/epoch - 9ms/step
Epoch 18/20
113/113 - 2s - loss: 0.7746 - val_loss: 0.3063 - 2s/epoch - 14ms/step
Epoch 19/20
113/113 - 1s - loss: 0.6999 - val_loss: 0.6246 - 925ms/epoch - 8ms/step
Epoch 20/20
113/113 - 1s - loss: 0.7131 - val_loss: 0.3272 - 775ms/epoch - 7ms/step

Run completed: runs/2024-05-07T00-48-37Z

Training run 10/10 (flags = list(0.5, 64, 128, 128, 64, 0.4, "relu")) 
Using run directory runs/2024-05-07T00-49-04Z

> FLAGS<- flags(
+   flag_numeric("nodes1", 32),
+   flag_numeric("nodes2", 32),
+   flag_numeric("nodes3", 32),
+   flag_numeric("batch_size",32),
+  .... [TRUNCATED] 

> model = keras_model_sequential()

> model %>%
+   layer_dense(units = FLAGS$nodes1, activation = FLAGS$activation, input_shape = dim(carbonTrainingFinal)[2]) %>%
+   layer_dropout(rate .... [TRUNCATED] 

> model %>% compile(
+   loss="mse",
+   optimizer=optimizer_adam(lr=FLAGS$learning_rate)
+ )
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.

> model %>%fit(  as.matrix(carbonTrainingFinal),
+                carbonTrainingLabels,
+                batch_size=FLAGS$batch_size,
+                .... [TRUNCATED] 
Epoch 1/20
2024-05-06 19:49:04.833257: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0076s vs `on_train_batch_end` time: 0.0106s). Check your callbacks.
WARNING:tensorflow:Callback method `on_train_batch_end` is slow compared to the batch time (batch time: 0.0076s vs `on_train_batch_end` time: 0.0106s). Check your callbacks.
2024-05-06 19:49:08.310975: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.
113/113 - 5s - loss: 10.5479 - val_loss: 1.4272 - 5s/epoch - 41ms/step
Epoch 2/20
113/113 - 1s - loss: 2.3952 - val_loss: 1.1559 - 1s/epoch - 13ms/step
Epoch 3/20
113/113 - 1s - loss: 1.5941 - val_loss: 1.0406 - 765ms/epoch - 7ms/step
Epoch 4/20
113/113 - 1s - loss: 1.2588 - val_loss: 1.2104 - 1s/epoch - 12ms/step
Epoch 5/20
113/113 - 1s - loss: 1.1194 - val_loss: 1.2557 - 807ms/epoch - 7ms/step
Epoch 6/20
113/113 - 2s - loss: 0.9635 - val_loss: 0.8202 - 2s/epoch - 16ms/step
Epoch 7/20
113/113 - 1s - loss: 0.7808 - val_loss: 1.2612 - 1s/epoch - 12ms/step
Epoch 8/20
113/113 - 1s - loss: 0.6893 - val_loss: 0.9310 - 792ms/epoch - 7ms/step
Epoch 9/20
113/113 - 1s - loss: 0.8263 - val_loss: 0.8854 - 1s/epoch - 12ms/step
Epoch 10/20
113/113 - 1s - loss: 0.8245 - val_loss: 1.9842 - 773ms/epoch - 7ms/step
Epoch 11/20
113/113 - 2s - loss: 0.6097 - val_loss: 1.6098 - 2s/epoch - 14ms/step
Epoch 12/20
113/113 - 1s - loss: 0.6071 - val_loss: 0.5681 - 1s/epoch - 12ms/step
Epoch 13/20
113/113 - 2s - loss: 1.0043 - val_loss: 2.7418 - 2s/epoch - 13ms/step
Epoch 14/20
113/113 - 1s - loss: 0.9712 - val_loss: 1.6307 - 756ms/epoch - 7ms/step
Epoch 15/20
113/113 - 1s - loss: 1.3167 - val_loss: 6.5994 - 1s/epoch - 12ms/step
Epoch 16/20
113/113 - 1s - loss: 1.0642 - val_loss: 3.7203 - 752ms/epoch - 7ms/step
Epoch 17/20
113/113 - 1s - loss: 1.9458 - val_loss: 3.8968 - 1s/epoch - 9ms/step
Epoch 18/20
113/113 - 1s - loss: 1.0726 - val_loss: 5.1104 - 741ms/epoch - 7ms/step
Epoch 19/20
113/113 - 1s - loss: 1.5860 - val_loss: 3.0719 - 1s/epoch - 9ms/step
Epoch 20/20
113/113 - 1s - loss: 1.7421 - val_loss: 6.8720 - 762ms/epoch - 7ms/step

Run completed: runs/2024-05-07T00-49-04Z

Runs

runs=runs[order(runs$metric_val_loss),]
runs
Data frame: 10 x 25 
# ... with 22 more columns:
#   flag_nodes1, flag_nodes2, flag_nodes3, flag_batch_size, flag_activation, flag_learning_rate, flag_dropout, epochs, epochs_completed, metrics,
#   model, loss_function, optimizer, learning_rate, script, start, end, completed, output, source_code, context, type
view_run(runs$run_dir[1])
Warning: incomplete final line found on '/var/folders/lw/zymjkl5d1g34b21y_8l475p80000gn/T//RtmpFb0Bja/file719e16574c3f/source/carbonEmission.R'Warning: incomplete final line found on '/var/folders/lw/zymjkl5d1g34b21y_8l475p80000gn/T//RtmpFb0Bja/file719e16574c3f/source/CarbonEmission.R'
dim(carbonTrainingFinal)
[1] 7202   75
dim(carbonValidationFinal)
[1] 799  75
carbonTrainingFinal<-rbind(carbonTrainingFinal,carbonValidationFinal)
carbonTrainingLabels<-c(carbonTrainingLabels,carbonValidationLabels)
dim(carbonTrainingFinal)
[1] 8001   75
BestModel<-keras_model_sequential()%>%
  layer_dense(units = 128,activation = "relu",input_shape = dim(carbonTrainingFinal)[2])%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 8,activation = "relu")%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 128,activation = "relu")%>%
  layer_dropout(rate=0.3)%>%
  layer_dense(units = 1)

BestModel %>% compile(
  loss="mse",
  optimizer=optimizer_adam(lr=0.001)
)
WARNING:absl:At this time, the v2.11+ optimizer `tf.keras.optimizers.Adam` runs slowly on M1/M2 Macs, please use the legacy Keras optimizer instead, located at `tf.keras.optimizers.legacy.Adam`.
WARNING:absl:`lr` is deprecated in Keras optimizer, please use `learning_rate` or use the legacy optimizer, e.g.,tf.keras.optimizers.legacy.Adam.
WARNING:absl:There is a known slowdown when using v2.11+ Keras optimizers on M1/M2 Macs. Falling back to the legacy Keras optimizer, i.e., `tf.keras.optimizers.legacy.Adam`.
history<-BestModel %>% fit(as.matrix(carbonTrainingFinal),
                       carbonTrainingLabels,
                       batch_size=128,
                       epochs=20,
                       validation_data=list(as.matrix(carbonTestingFinal),carbonTestingLabels)
                         )
Epoch 1/20
2024-05-06 19:50:10.098149: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

 1/63 [..............................] - ETA: 32s - loss: 56.1525
 7/63 [==>...........................] - ETA: 0s - loss: 50.6973 
14/63 [=====>........................] - ETA: 0s - loss: 43.2697
24/63 [==========>...................] - ETA: 0s - loss: 32.1539
31/63 [=============>................] - ETA: 0s - loss: 27.5672
39/63 [=================>............] - ETA: 0s - loss: 23.9154
49/63 [======================>.......] - ETA: 0s - loss: 20.7494
58/63 [==========================>...] - ETA: 0s - loss: 18.6393
63/63 [==============================] - 1s 9ms/step - loss: 17.7316
2024-05-06 19:50:10.989452: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

63/63 [==============================] - 2s 20ms/step - loss: 17.7316 - val_loss: 0.3594
Epoch 2/20

 1/63 [..............................] - ETA: 0s - loss: 6.0446
 8/63 [==>...........................] - ETA: 0s - loss: 6.1043
18/63 [=======>......................] - ETA: 0s - loss: 5.9030
26/63 [===========>..................] - ETA: 0s - loss: 5.7035
33/63 [==============>...............] - ETA: 0s - loss: 5.5879
41/63 [==================>...........] - ETA: 0s - loss: 5.4225
50/63 [======================>.......] - ETA: 0s - loss: 5.2888
60/63 [===========================>..] - ETA: 0s - loss: 5.1492
63/63 [==============================] - 0s 6ms/step - loss: 5.1037

63/63 [==============================] - 1s 9ms/step - loss: 5.1037 - val_loss: 0.4893
Epoch 3/20

 1/63 [..............................] - ETA: 0s - loss: 3.7968
 6/63 [=>............................] - ETA: 0s - loss: 4.2288
14/63 [=====>........................] - ETA: 0s - loss: 4.3073
23/63 [=========>....................] - ETA: 0s - loss: 4.1040
32/63 [==============>...............] - ETA: 0s - loss: 4.0073
42/63 [===================>..........] - ETA: 0s - loss: 3.9244
51/63 [=======================>......] - ETA: 0s - loss: 3.9132
60/63 [===========================>..] - ETA: 0s - loss: 3.8433
63/63 [==============================] - 0s 6ms/step - loss: 3.8226

63/63 [==============================] - 1s 9ms/step - loss: 3.8226 - val_loss: 0.3493
Epoch 4/20

 1/63 [..............................] - ETA: 0s - loss: 3.3050
 7/63 [==>...........................] - ETA: 0s - loss: 3.3747
16/63 [======>.......................] - ETA: 0s - loss: 3.3454
24/63 [==========>...................] - ETA: 0s - loss: 3.2853
34/63 [===============>..............] - ETA: 0s - loss: 3.2063
42/63 [===================>..........] - ETA: 0s - loss: 3.1480
49/63 [======================>.......] - ETA: 0s - loss: 3.0933
58/63 [==========================>...] - ETA: 0s - loss: 3.0464
63/63 [==============================] - 0s 6ms/step - loss: 3.0180

63/63 [==============================] - 1s 9ms/step - loss: 3.0180 - val_loss: 0.3182
Epoch 5/20

 1/63 [..............................] - ETA: 0s - loss: 2.6332
 8/63 [==>...........................] - ETA: 0s - loss: 2.6578
17/63 [=======>......................] - ETA: 0s - loss: 2.6075
27/63 [===========>..................] - ETA: 0s - loss: 2.5429
37/63 [================>.............] - ETA: 0s - loss: 2.4747
47/63 [=====================>........] - ETA: 0s - loss: 2.4145
57/63 [==========================>...] - ETA: 0s - loss: 2.3543
63/63 [==============================] - 0s 6ms/step - loss: 2.3245

63/63 [==============================] - 1s 8ms/step - loss: 2.3245 - val_loss: 0.2665
Epoch 6/20

 1/63 [..............................] - ETA: 0s - loss: 2.1989
 8/63 [==>...........................] - ETA: 0s - loss: 1.9025
18/63 [=======>......................] - ETA: 0s - loss: 1.8597
27/63 [===========>..................] - ETA: 0s - loss: 1.7908
37/63 [================>.............] - ETA: 0s - loss: 1.7341
47/63 [=====================>........] - ETA: 0s - loss: 1.6634
57/63 [==========================>...] - ETA: 0s - loss: 1.6058
63/63 [==============================] - 0s 6ms/step - loss: 1.5699

63/63 [==============================] - 1s 8ms/step - loss: 1.5699 - val_loss: 0.3017
Epoch 7/20

 1/63 [..............................] - ETA: 0s - loss: 1.2788
 9/63 [===>..........................] - ETA: 0s - loss: 1.2298
18/63 [=======>......................] - ETA: 0s - loss: 1.2152
28/63 [============>.................] - ETA: 0s - loss: 1.1812
38/63 [=================>............] - ETA: 0s - loss: 1.1151
48/63 [=====================>........] - ETA: 0s - loss: 1.0783
58/63 [==========================>...] - ETA: 0s - loss: 1.0496
63/63 [==============================] - 0s 6ms/step - loss: 1.0329

63/63 [==============================] - 1s 8ms/step - loss: 1.0329 - val_loss: 0.4110
Epoch 8/20

 1/63 [..............................] - ETA: 0s - loss: 0.9057
 8/63 [==>...........................] - ETA: 0s - loss: 0.8505
18/63 [=======>......................] - ETA: 0s - loss: 0.7783
27/63 [===========>..................] - ETA: 0s - loss: 0.7639
36/63 [================>.............] - ETA: 0s - loss: 0.7573
46/63 [====================>.........] - ETA: 0s - loss: 0.7394
55/63 [=========================>....] - ETA: 0s - loss: 0.7227
63/63 [==============================] - 0s 6ms/step - loss: 0.7049

63/63 [==============================] - 1s 9ms/step - loss: 0.7049 - val_loss: 0.3024
Epoch 9/20

 1/63 [..............................] - ETA: 0s - loss: 0.6317
 8/63 [==>...........................] - ETA: 0s - loss: 0.6003
18/63 [=======>......................] - ETA: 0s - loss: 0.6017
28/63 [============>.................] - ETA: 0s - loss: 0.6022
38/63 [=================>............] - ETA: 0s - loss: 0.5921
48/63 [=====================>........] - ETA: 0s - loss: 0.5811
58/63 [==========================>...] - ETA: 0s - loss: 0.5761
63/63 [==============================] - 0s 6ms/step - loss: 0.5716

63/63 [==============================] - 1s 9ms/step - loss: 0.5716 - val_loss: 0.4165
Epoch 10/20

 1/63 [..............................] - ETA: 0s - loss: 0.4257
 7/63 [==>...........................] - ETA: 0s - loss: 0.5176
16/63 [======>.......................] - ETA: 0s - loss: 0.5310
26/63 [===========>..................] - ETA: 0s - loss: 0.5257
35/63 [===============>..............] - ETA: 0s - loss: 0.5265
45/63 [====================>.........] - ETA: 0s - loss: 0.5175
54/63 [========================>.....] - ETA: 0s - loss: 0.5178
62/63 [============================>.] - ETA: 0s - loss: 0.5170
63/63 [==============================] - 0s 6ms/step - loss: 0.5155

63/63 [==============================] - 1s 9ms/step - loss: 0.5155 - val_loss: 0.4760
Epoch 11/20

 1/63 [..............................] - ETA: 0s - loss: 0.5481
 8/63 [==>...........................] - ETA: 0s - loss: 0.5009
18/63 [=======>......................] - ETA: 0s - loss: 0.4864
28/63 [============>.................] - ETA: 0s - loss: 0.4712
37/63 [================>.............] - ETA: 0s - loss: 0.4750
47/63 [=====================>........] - ETA: 0s - loss: 0.4799
58/63 [==========================>...] - ETA: 0s - loss: 0.4830
63/63 [==============================] - 0s 6ms/step - loss: 0.4824

63/63 [==============================] - 1s 8ms/step - loss: 0.4824 - val_loss: 0.4617
Epoch 12/20

 1/63 [..............................] - ETA: 0s - loss: 0.4498
 8/63 [==>...........................] - ETA: 0s - loss: 0.4512
18/63 [=======>......................] - ETA: 0s - loss: 0.4672
27/63 [===========>..................] - ETA: 0s - loss: 0.4586
37/63 [================>.............] - ETA: 0s - loss: 0.4754
46/63 [====================>.........] - ETA: 0s - loss: 0.4858
54/63 [========================>.....] - ETA: 0s - loss: 0.4884
63/63 [==============================] - 0s 6ms/step - loss: 0.4905

63/63 [==============================] - 1s 9ms/step - loss: 0.4905 - val_loss: 0.4083
Epoch 13/20

 1/63 [..............................] - ETA: 0s - loss: 0.4547
 8/63 [==>...........................] - ETA: 0s - loss: 0.4782
17/63 [=======>......................] - ETA: 0s - loss: 0.4875
27/63 [===========>..................] - ETA: 0s - loss: 0.4907
37/63 [================>.............] - ETA: 0s - loss: 0.4954
45/63 [====================>.........] - ETA: 0s - loss: 0.4970
55/63 [=========================>....] - ETA: 0s - loss: 0.5106
63/63 [==============================] - 0s 6ms/step - loss: 0.5178

63/63 [==============================] - 1s 9ms/step - loss: 0.5178 - val_loss: 0.3120
Epoch 14/20

 1/63 [..............................] - ETA: 0s - loss: 0.4834
 9/63 [===>..........................] - ETA: 0s - loss: 0.6559
19/63 [========>.....................] - ETA: 0s - loss: 0.6414
29/63 [============>.................] - ETA: 0s - loss: 0.6487
39/63 [=================>............] - ETA: 0s - loss: 0.6533
49/63 [======================>.......] - ETA: 0s - loss: 0.6356
59/63 [===========================>..] - ETA: 0s - loss: 0.6320
63/63 [==============================] - 0s 5ms/step - loss: 0.6281

63/63 [==============================] - 1s 8ms/step - loss: 0.6281 - val_loss: 0.5378
Epoch 15/20

 1/63 [..............................] - ETA: 0s - loss: 0.6601
 9/63 [===>..........................] - ETA: 0s - loss: 0.6684
17/63 [=======>......................] - ETA: 0s - loss: 0.7051
27/63 [===========>..................] - ETA: 0s - loss: 0.6947
37/63 [================>.............] - ETA: 0s - loss: 0.6975
47/63 [=====================>........] - ETA: 0s - loss: 0.7048
56/63 [=========================>....] - ETA: 0s - loss: 0.7048
63/63 [==============================] - 0s 6ms/step - loss: 0.7108

63/63 [==============================] - 1s 8ms/step - loss: 0.7108 - val_loss: 0.2581
Epoch 16/20

 1/63 [..............................] - ETA: 0s - loss: 0.7801
 8/63 [==>...........................] - ETA: 0s - loss: 0.6919
18/63 [=======>......................] - ETA: 0s - loss: 0.7125
27/63 [===========>..................] - ETA: 0s - loss: 0.7137
37/63 [================>.............] - ETA: 0s - loss: 0.7245
47/63 [=====================>........] - ETA: 0s - loss: 0.7272
56/63 [=========================>....] - ETA: 0s - loss: 0.7218
63/63 [==============================] - 0s 6ms/step - loss: 0.7238

63/63 [==============================] - 1s 8ms/step - loss: 0.7238 - val_loss: 0.7199
Epoch 17/20

 1/63 [..............................] - ETA: 0s - loss: 0.6796
 9/63 [===>..........................] - ETA: 0s - loss: 0.6985
19/63 [========>.....................] - ETA: 0s - loss: 0.7236
28/63 [============>.................] - ETA: 0s - loss: 0.7255
38/63 [=================>............] - ETA: 0s - loss: 0.7247
48/63 [=====================>........] - ETA: 0s - loss: 0.7379
58/63 [==========================>...] - ETA: 0s - loss: 0.7495
63/63 [==============================] - 0s 6ms/step - loss: 0.7535

63/63 [==============================] - 1s 8ms/step - loss: 0.7535 - val_loss: 0.7899
Epoch 18/20

 1/63 [..............................] - ETA: 0s - loss: 0.7956
 9/63 [===>..........................] - ETA: 0s - loss: 0.8208
19/63 [========>.....................] - ETA: 0s - loss: 0.8132
29/63 [============>.................] - ETA: 0s - loss: 0.8473
39/63 [=================>............] - ETA: 0s - loss: 0.8946
49/63 [======================>.......] - ETA: 0s - loss: 0.9325
59/63 [===========================>..] - ETA: 0s - loss: 0.9543
63/63 [==============================] - 0s 6ms/step - loss: 0.9532

63/63 [==============================] - 1s 8ms/step - loss: 0.9532 - val_loss: 1.1574
Epoch 19/20

 1/63 [..............................] - ETA: 0s - loss: 0.9332
 9/63 [===>..........................] - ETA: 0s - loss: 1.0345
19/63 [========>.....................] - ETA: 0s - loss: 1.0831
29/63 [============>.................] - ETA: 0s - loss: 1.0410
39/63 [=================>............] - ETA: 0s - loss: 1.0398
49/63 [======================>.......] - ETA: 0s - loss: 1.0370
59/63 [===========================>..] - ETA: 0s - loss: 1.0292
63/63 [==============================] - 0s 5ms/step - loss: 1.0303

63/63 [==============================] - 1s 9ms/step - loss: 1.0303 - val_loss: 0.8911
Epoch 20/20

 1/63 [..............................] - ETA: 0s - loss: 0.8411
 8/63 [==>...........................] - ETA: 0s - loss: 0.9346
18/63 [=======>......................] - ETA: 0s - loss: 0.9226
28/63 [============>.................] - ETA: 0s - loss: 0.9545
38/63 [=================>............] - ETA: 0s - loss: 1.0284
48/63 [=====================>........] - ETA: 0s - loss: 1.0479
58/63 [==========================>...] - ETA: 0s - loss: 1.0510
63/63 [==============================] - 0s 6ms/step - loss: 1.0448

63/63 [==============================] - 1s 8ms/step - loss: 1.0448 - val_loss: 1.6152
predictBestModel<-model %>% predict(as.matrix(carbonTestingFinal))
2024-05-06 19:50:31.488130: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:114] Plugin optimizer for device_type GPU is enabled.

 1/63 [..............................] - ETA: 4s
11/63 [====>.........................] - ETA: 0s
32/63 [==============>...............] - ETA: 0s
58/63 [==========================>...] - ETA: 0s
63/63 [==============================] - 0s 3ms/step

63/63 [==============================] - 0s 3ms/step
rmse=function(x,y){
  return((mean(x-y)^2)^0.5)
}

rmse(predictBestModel,carbonTestingLabels)
[1] 0.2827712
MAE(predictBestModel,carbonTestingLabels)
[1] 0.3099322
rsquaredBest<-sum((predictBestModel-carbonTestingLabels)^2)/sum((carbonTestingLabels-mean(carbonTestingLabels))^2)
rsquaredBest
[1] 0.7408867
LS0tCnRpdGxlOiAiUHJvamVjdCIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQojIExvYWRpbmcgdGhlIGRhdGEKYGBge3J9CmNhcmJvbkRhdGE8LXJlYWQuY3N2KCcvVXNlcnMvYW5nYWRzaW5naC9Eb3dubG9hZHMvQ2FyYm9uIEVtaXNzaW9uLmNzdicpCnN1bW1hcnkoY2FyYm9uRGF0YSkKYGBgCgpgYGB7cn0Kc3RyKGNhcmJvbkRhdGEpCmBgYApGcm9tIHRoZSBzdHIgb2YgY2FyYm9uIGRhdGEgaSBjYW4gc2VlIHRoYXQgaSBhbSBoYXZpbmcgZW1wdHkgdmVoaWNsZSB0eXBlcyBhcyAiIiBzbyBpIHdpbGwgcmVwbGFjZSB0aGVtIHdpdGggTm8gdmVoaWNsZQpgYGB7cn0KCmNhcmJvbkRhdGEkVmVoaWNsZS5UeXBlW2NhcmJvbkRhdGEkVHJhbnNwb3J0PT0ncHVibGljJ3xjYXJib25EYXRhJFRyYW5zcG9ydD09J3dhbGsvYmljeWNsZSddPC0nRnVlbEVmZmljaWVudCcKI2NhcmJvbkRhdGE8LSBjYXJib25EYXRhICU+JSBtdXRhdGUoVmVoaWNsZS5UeXBlPWlmZWxzZShWZWhpY2xlLlR5cGU9PSIiLCJObyB2ZWhpY2xlIixWZWhpY2xlLlR5cGUpKQpzdHIoY2FyYm9uRGF0YSkKYGBgCmBgYHtyfQojY2FyYm9uRGF0YVtjYXJib25EYXRhID09ICIiXTwtTkEKY29sU3Vtcyhpcy5uYShjYXJib25EYXRhKSkKYGBgCgoKYGBge3J9CmxpYnJhcnkoZHBseXIpCmNhcmJvbkRhdGE8LWNhcmJvbkRhdGEgJT4lCiAgbXV0YXRlX2lmKGlzLmNoYXJhY3RlciwgYXMuZmFjdG9yKSU+JQogIG11dGF0ZV9pZihpcy5pbnRlZ2VyLCBhcy5udW1lcmljKQoKc3RyKGNhcmJvbkRhdGEpCnN1bW1hcnkoY2FyYm9uRGF0YSkKYGBgCgoKCgoKYGBge3J9CnRhYmxlKGNhcmJvbkRhdGEkQm9keS5UeXBlKQp0YWJsZShjYXJib25EYXRhJFNleCkKdGFibGUoY2FyYm9uRGF0YSREaWV0KQp0YWJsZShjYXJib25EYXRhJEhvdy5PZnRlbi5TaG93ZXIpCnRhYmxlKGNhcmJvbkRhdGEkSGVhdGluZy5FbmVyZ3kuU291cmNlKQp0YWJsZShjYXJib25EYXRhJFRyYW5zcG9ydCkKdGFibGUoY2FyYm9uRGF0YSRTb2NpYWwuQWN0aXZpdHkpCnRhYmxlKGNhcmJvbkRhdGEkRnJlcXVlbmN5Lm9mLlRyYXZlbGluZy5ieS5BaXIpCnRhYmxlKGNhcmJvbkRhdGEkV2FzdGUuQmFnLlNpemUpCnRhYmxlKGNhcmJvbkRhdGEkRW5lcmd5LmVmZmljaWVuY3kpCmBgYAoKCmBgYHtyfQpoaXN0KGNhcmJvbkRhdGEkQ2FyYm9uRW1pc3Npb24pCmNhcmJvbkRhdGEkQ2FyYm9uRW1pc3Npb248LWxvZyhjYXJib25EYXRhJENhcmJvbkVtaXNzaW9uKSAKaGlzdChjYXJib25EYXRhJENhcmJvbkVtaXNzaW9uKQpgYGAKYGBge3J9CmNhcmJvbkluZGljZXM8LXdoaWNoKG5hbWVzKGNhcmJvbkRhdGEpPT0nQ2FyYm9uRW1pc3Npb24nKQpmb3IgKGMgaW4gY29sbmFtZXMoY2FyYm9uRGF0YVssLWNhcmJvbkluZGljZXNdKSkgewogIGlmKGlzLmZhY3RvcihjYXJib25EYXRhWyxjXSkpewogICAgdHJ5KHsKICAgICAgICBhbm92YWFSZXN1bHQ8LWFvdihjYXJib25EYXRhJENhcmJvbkVtaXNzaW9ufmNhcmJvbkRhdGFbLGNdKQogICAgICAgIGNhdCgiQU5PVkEgb2YgIixjLCAiYW5kIENhcmJvbkVtaXNzaW9uIiwgIlxuIikKICAgICAgICBwcmludChzdW1tYXJ5KGFub3ZhYVJlc3VsdCkpCiAgICAgICAgYm94cGxvdChjYXJib25EYXRhJENhcmJvbkVtaXNzaW9ufmNhcmJvbkRhdGFbLGNdLHNoYWRlPVRSVUUsIG1haW4gPSBwYXN0ZSgiQ2FyYm9uIEVtaXNzaW9uIHZzIiwgYyksIHhsYWIgPSJDYXJib25FbWlzc2lvbiIsIHlsYWI9YyAsY29sPSJsaWdodGdyZWVuIikKICAgICAgICAKICAgICAgfSkKICB9CiAgZWxzZSBpZiAoaXMubnVtZXJpYyhjYXJib25EYXRhWyxjXSkpewogICAgdHJ5KHsKICAgICAgY29yVGVzdDwtY29yLnRlc3QoY2FyYm9uRGF0YSRDYXJib25FbWlzc2lvbixjYXJib25EYXRhWyxjXSwgbWV0aG9kID0gInBlYXJzb24iKQogICAgICBjYXQoInAudmFsdWUgb2YgIixjLCAiYW5kIENhcmJvbiBFbWlzc2lvbiIsIGNvclRlc3QkcC52YWx1ZSwgIlxuIikKICAgICAgcGxvdChjYXJib25EYXRhJENhcmJvbkVtaXNzaW9uLGNhcmJvbkRhdGFbLGNdLCBtYWluID0gcGFzdGUoIkNhcmJvbiBFbWlzc2lvbiB2cyIsIGMpLCB4bGFiID0iQ2FyYm9uIEVtaXNzaW9uIiwgeWxhYj1jKQogICAgfSkKICB9CiAgCn0KYGBgCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCnBhcnNlTGlzdDwtZnVuY3Rpb24oeCxlbXB0eUxhYmxlKXsKICBwYXJzZWRJdGVtPC1zdHJfcmVtb3ZlX2FsbCh4LCJcXFt8XFxdfCciKSU+JQogICAgc3Ryc3BsaXQoIiwgIiklPiUKICAgIHVubGlzdCgpCiAgCiAgaWYobGVuZ3RoKHBhcnNlZEl0ZW0pPT0wfHxhbGwocGFyc2VkSXRlbT09IiIpKXsKICAgIHBhcnNlZEl0ZW08LWVtcHR5TGFibGUKICB9CiAgcmV0dXJuKHBhcnNlZEl0ZW0pCn0KY2FyYm9uRGF0YSRSZWN5Y2xpbmc8LXNhcHBseShjYXJib25EYXRhJFJlY3ljbGluZyxwYXJzZUxpc3QsZW1wdHlMYWJsZT0iTm9fUmVjeWNsaW5nIikKY2FyYm9uRGF0YSRDb29raW5nX1dpdGg8LXNhcHBseShjYXJib25EYXRhJENvb2tpbmdfV2l0aCxwYXJzZUxpc3QsZW1wdHlMYWJsZT0iTm9fQ29va2luZyIpCgpjYXJib25EYXRhJFJlY3ljbGluZzwtc2FwcGx5KGNhcmJvbkRhdGEkUmVjeWNsaW5nLHBhc3RlLGNvbGxhcHNlPSIsIikKY2FyYm9uRGF0YSRDb29raW5nX1dpdGg8LXNhcHBseShjYXJib25EYXRhJENvb2tpbmdfV2l0aCxwYXN0ZSxjb2xsYXBzZT0iLCIpCgojc3RyKGNhcmJvbkRhdGEpCgpkdW1taWVzPC1mdW5jdGlvbihjb2wpewoKICBpdGVtczwtdW5saXN0KHN0cl9zcGxpdChjb2wsIiwiKSkKICBpdGVtczwtdHJpbXdzKGl0ZW1zKQogIGl0ZW1zPC1pdGVtc1tpdGVtcyAhPSAiIl0KICAKICB1bmlxdWVJdGVtczwtdW5pcXVlKGMoaXRlbXMpKQogIGR1bW15RGF0YUZyYW1lPC1kYXRhLmZyYW1lKG1hdHJpeCgwLG5yb3cgPSBsZW5ndGgoY29sKSxuY29sID0gbGVuZ3RoKHVuaXF1ZUl0ZW1zKSkpCiAgY29sbmFtZXMoZHVtbXlEYXRhRnJhbWUpPC11bmlxdWVJdGVtcwogIAogIGZvciAoaSBpbiBzZXFfYWxvbmcoY29sKSkgewogICAgcm93SXRlbXM8LXVubGlzdChzdHJfc3BsaXQoY29sW2ldLCIsIikpJT4lCiAgICBtYXBfY2hyKH5zdHJfdHJpbSguKSklPiUKICAgIGRpc2NhcmQofi49PSIiKQogICAgCiAgICByb3dJdGVtczwtcm93SXRlbXNbcm93SXRlbXMgJWluJSB1bmlxdWVJdGVtc10KICAgIGR1bW15RGF0YUZyYW1lW2kscm93SXRlbXNdPC0xCiAgfQogIHJldHVybihkdW1teURhdGFGcmFtZSkKfQoKcmVjeWNsaW5nRHVtbWllczwtZHVtbWllcyhjYXJib25EYXRhJFJlY3ljbGluZykKY29va2luZ0R1bW1pZXM8LWR1bW1pZXMoY2FyYm9uRGF0YSRDb29raW5nX1dpdGgpCgoKY2FyYm9uRGF0YTwtY2JpbmQoY2FyYm9uRGF0YSxyZWN5Y2xpbmdEdW1taWVzLGNvb2tpbmdEdW1taWVzKQoKY2FyYm9uRGF0YSRSZWN5Y2xpbmc8LSBOVUxMCmNhcmJvbkRhdGEkQ29va2luZ19XaXRoPC1OVUxMCgpzdHIoY2FyYm9uRGF0YSkKYGBgCgoKYGBge3J9CmxpYnJhcnkoY2FyZXQpCgpjYXJib25EYXRhSW5kZXhzIDwtIGNyZWF0ZURhdGFQYXJ0aXRpb24oY2FyYm9uRGF0YSRDYXJib25FbWlzc2lvbiwgcD0wLjgsIGxpc3Q9RkFMU0UpCgpjYXJib25UcmFpbkRhdGE8LWNhcmJvbkRhdGFbY2FyYm9uRGF0YUluZGV4cyxdCmNhcmJvblRyYWluRGF0YQoKY2FyYm9uVGVzdERhdGE8LWNhcmJvbkRhdGFbLWNhcmJvbkRhdGFJbmRleHMsXQpjYXJib25UZXN0RGF0YQoKY2FyYm9uVGVzdExhYmVsczwtY2FyYm9uVGVzdERhdGEkQ2FyYm9uRW1pc3Npb24KYGBgCiNCZW5jaG1hcmsKYGBge3J9Cm1lYW5UcmFuc3BvcnQ8LSBjYXJib25UcmFpbkRhdGEgJT4lICN0aGlzIHdpbGwgY2FsY3VsYXRlIGVtaXNzaW9uIHBlciB0cmFuc3BvcnQgdHlwZSAKICBncm91cF9ieShUcmFuc3BvcnQpICU+JQogIHN1bW1hcml6ZShtZWFuRW1pc3Npb249IG1lYW4oQ2FyYm9uRW1pc3Npb24sIG5hLnJtID0gVFJVRSkpCgptZWFuVHJhbnNwb3J0VGFibGU8LXNldE5hbWVzKG1lYW5UcmFuc3BvcnQkbWVhbkVtaXNzaW9uLG1lYW5UcmFuc3BvcnQkVHJhbnNwb3J0KSAgIyB3aWxsIHN0b3JlIHRyYW5zcG9ydCBsZXZlbHMgdG8gaXRzIGF2ZXJhZ2UgZW1pc3Npb24KCnByZWRpY3RUcmFuc3BvcnQ8LWZ1bmN0aW9uKHJvdyl7CiAgdHJhbnNwb3J0VHlwZTwtYXMuY2hhcmFjdGVyKHJvd1siVHJhbnNwb3J0Il0pCiAgaWYodHJhbnNwb3J0VHlwZSAlaW4lIG5hbWVzKG1lYW5UcmFuc3BvcnRUYWJsZSkpewogICAgcmV0dXJuKG1lYW5UcmFuc3BvcnRUYWJsZVtbdHJhbnNwb3J0VHlwZV1dKQogIH0KfQoKYmVuY2htYXJrUHJlZDwtYXBwbHkoY2FyYm9uVGVzdERhdGEsMSxwcmVkaWN0VHJhbnNwb3J0KSAjIHdpbGwgYXBwbHkgcHJlZGljdFRyYW5zcG9ydCBmdW5jdGlvbiBvbiB0aGUgdGVzdCBkYXRhCgoKcm1zZShiZW5jaG1hcmtQcmVkLGNhcmJvblRlc3REYXRhJENhcmJvbkVtaXNzaW9uKQpNQUUoYmVuY2htYXJrUHJlZCxjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbikKcnNxdWFyZWROZXc8LXN1bSgoYmVuY2htYXJrUHJlZC1jYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbileMikvc3VtKChjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbi1tZWFuKGNhcmJvblRlc3REYXRhJENhcmJvbkVtaXNzaW9uKSleMikKcnNxdWFyZWROZXcKYGBgCiNLTk4gTW9kZWwKYGBge3J9Cmtubk1vZGVsPC10cmFpbihDYXJib25FbWlzc2lvbn4uLGRhdGEgPSBjYXJib25UcmFpbkRhdGEsIG1ldGhvZD0ia25uIiwgdHJDb250cm9sPXRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXI9NSkpCmBgYApgYGB7cn0Ka25uTW9kZWwKYGBgCmBgYHtyfQprbm5QcmVkPC1wcmVkaWN0KGtubk1vZGVsLG5ld2RhdGEgPSBjYXJib25UZXN0RGF0YSkKCnJtc2U9ZnVuY3Rpb24oeCx5KXsKICByZXR1cm4oKG1lYW4oeC15KV4yKV4wLjUpCn0Kcm1zZShrbm5QcmVkLGNhcmJvblRlc3RMYWJlbHMpCmBgYApgYGB7cn0KbG1Nb2RlbDwtdHJhaW4oQ2FyYm9uRW1pc3Npb25+LixkYXRhID0gY2FyYm9uVHJhaW5EYXRhLCBtZXRob2Q9ImxtIiwgdHJDb250cm9sPXRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXI9NSkpCmxtTW9kZWwKYGBgCmBgYHtyfQpzdW1tYXJ5KGxtTW9kZWwpCmBgYApgYGB7cn0Kc3RlcHdpc2VNb2RlbDwtdHJhaW4oQ2FyYm9uRW1pc3Npb25+LixkYXRhID0gY2FyYm9uVHJhaW5EYXRhLCBtZXRob2Q9ImxlYXBCYWNrd2FyZCIsIHRyQ29udHJvbD10cmFpbkNvbnRyb2wobWV0aG9kID0gImN2IiwgbnVtYmVyPTUpKQpzdGVwd2lzZU1vZGVsCmBgYApgYGB7cn0Kc3VtbWFyeShzdGVwd2lzZU1vZGVsJGZpbmFsTW9kZWwpCmBgYAoKI0xhc3NvIE1vZGVsCmBgYHtyfQpsaWJyYXJ5KGdsbW5ldCkKc2V0LnNlZWQoMSkKbGFzc29Nb2RlbDwtdHJhaW4oQ2FyYm9uRW1pc3Npb25+LixkYXRhID0gY2FyYm9uVHJhaW5EYXRhLG1ldGhvZD0iZ2xtbmV0Iix0ckNvbnRyb2w9IHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXI9NSksIHR1bmVHcmlkID0gZXhwYW5kLmdyaWQoYWxwaGE9MSwgbGFtYmRhPTEwXnNlcSgtMywzLGxlbmd0aD0xMDApKSkgCgpsYXNzb01vZGVsCgoKbGFzc29MYW1iZGE8LWxhc3NvTW9kZWwkYmVzdFR1bmUkbGFtYmRhCmxhc3NvUHJlZGljdG9yPC0gc2V0ZGlmZihuYW1lcyhjYXJib25UcmFpbkRhdGEpLCJDYXJib25FbWlzc2lvbiIpCmxhc3NvRmluYWxNb2RlbDwtZ2xtbmV0KGFzLm1hdHJpeChjYXJib25UcmFpbkRhdGFbLGxhc3NvUHJlZGljdG9yXSksY2FyYm9uVHJhaW5EYXRhWywiQ2FyYm9uRW1pc3Npb24iXSxhbHBoYSA9IDEsbGFtYmRhID0gbGFzc29MYW1iZGEsIGZhbWlseSA9ICJnYXVzc2lhbiIpCgpjb2VmZjwtY29lZihsYXNzb0ZpbmFsTW9kZWwpCmNvZWZmCgp6ZXJvQ29lZmY8LWNvZWZmPT0wCnplcm9Db2VmZgpgYGAKYGBge3J9CnBsb3QobGFzc29Nb2RlbCkKYGBgCgoKI1JpZGdlIE1vZGVsCmBgYHtyfQpzZXQuc2VlZCgxKQpyaWRnZU1vZGVsPC10cmFpbihDYXJib25FbWlzc2lvbn4uLGRhdGEgPSBjYXJib25UcmFpbkRhdGEsbWV0aG9kPSJnbG1uZXQiLHRyQ29udHJvbD0gdHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsIG51bWJlcj01KSwgdHVuZUdyaWQgPSBleHBhbmQuZ3JpZChhbHBoYT0wLCBsYW1iZGE9MTBec2VxKC0zLDMsbGVuZ3RoPTEwMCkpKSAKCnJpZGdlTW9kZWwKCnJpZGdlTGFtYmRhPC1yaWRnZU1vZGVsJGJlc3RUdW5lJGxhbWJkYQpyaWRnZVByZWRpY3RvcjwtIHNldGRpZmYobmFtZXMoY2FyYm9uVHJhaW5EYXRhKSwiQ2FyYm9uRW1pc3Npb24iKQpyaWRnZUZpbmFsTW9kZWw8LWdsbW5ldChhcy5tYXRyaXgoY2FyYm9uVHJhaW5EYXRhWyxyaWRnZVByZWRpY3Rvcl0pLGNhcmJvblRyYWluRGF0YVssIkNhcmJvbkVtaXNzaW9uIl0sYWxwaGEgPSAxLGxhbWJkYSA9IHJpZGdlTGFtYmRhLCBmYW1pbHkgPSAiZ2F1c3NpYW4iKQoKcmlkZ2VGaW5hbE1vZGVsCmBgYApgYGB7cn0KcGxvdChyaWRnZU1vZGVsKQpgYGAKCiNFbGFzdGljIE5ldCBNb2RlbApgYGB7cn0Kc2V0LnNlZWQoMSkKZW5ldE1vZGVsPC10cmFpbihDYXJib25FbWlzc2lvbn4uLCBkYXRhID0gY2FyYm9uVHJhaW5EYXRhLCBtZXRob2QgPSAiZ2xtbmV0IiwgdHJDb250cm9sPXRyYWluQ29udHJvbChtZXRob2Q9ImN2IixudW1iZXI9NSxwcmVQcm9jPSJuenYiKSx0dW5lR3JpZD1leHBhbmQuZ3JpZChhbHBoYT1zZXEoMCwxLGxlbmd0aD0xMCksbGFtYmRhPTEwXnNlcSgtMywxLGxlbmd0aD0xMDApKSkKCmVuZXRNb2RlbAoKZW5ldE1vZGVsJGJlc3RUdW5lCmBgYApgYGB7cn0KZW5ldExhbWJkYTwtZW5ldE1vZGVsJGJlc3RUdW5lJGxhbWJkYQplbmV0QWxwaGE8LWVuZXRNb2RlbCRiZXN0VHVuZSRhbHBoYQoKZW5ldFByZWRlY3Rvcjwtc2V0ZGlmZihuYW1lcyhjYXJib25UcmFpbkRhdGEpLCJDYXJib25FbWlzc2lvbiIpCgplbmV0RmluYWxNb2RlbDwtZ2xtbmV0KGFzLm1hdHJpeChjYXJib25UcmFpbkRhdGFbLGVuZXRQcmVkZWN0b3JdKSxjYXJib25UcmFpbkRhdGFbLCJDYXJib25FbWlzc2lvbiJdLCBhbHBoYSA9IGVuZXRBbHBoYSxsYW1iZGEgPSBlbmV0TGFtYmRhLCBmYW1pbHkgPSAiZ2F1c3NpYW4iKQoKZW5ldEZpbmFsTW9kZWwKYGBgCgpgYGB7cn0KY2FyYm9uVHJhaW5EYXRhJGBObyBSZWN5Y2xpbmdgCmBgYAoKCiNSYW5kb20gRm9yZXN0IE1vZGVsCmBgYHtyfQpsaWJyYXJ5KHJhbmRvbUZvcmVzdCkKc2V0LnNlZWQoMSkKcmFuZG9tRm9yZXN0TW9kZWw8LXJhbmRvbUZvcmVzdChDYXJib25FbWlzc2lvbn4uLGRhdGEgPSBjYXJib25UcmFpbkRhdGEpCnJhbmRvbUZvcmVzdE1vZGVsCmBgYAoKYGBge3J9Cm1SZjwtdHJhaW4oQ2FyYm9uRW1pc3Npb25+LiwKICAgICAgICAgICBkYXRhPWNhcmJvblRyYWluRGF0YSwKICAgICAgICAgICBtZXRob2Q9InJmIiwKICAgICAgICAgICB0ckNvbnRyb2w9dHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsIG51bWJlciA9NSkKICAgICAgICAgICApCmBgYAoKYGBge3J9Cm1SZgp2YXJJbXAobVJmKQpgYGAKYGBge3J9CnJmUHJlZDwtcHJlZGljdChtUmYsbmV3ZGF0YSA9IGNhcmJvblRlc3REYXRhKQoKTUFFKGNhcmJvblRlc3REYXRhJENhcmJvbkVtaXNzaW9uLHJmUHJlZCkKcm1zZShjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixyZlByZWQpCmNvcihjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixyZlByZWQpXjIKYGBgCgpgYGB7cn0KcGxvdChjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixyZlByZWQpCmBgYAojIEdCTQpgYGB7cn0Kc2V0LnNlZWQoMSkKCmdyQm9vc3RlZFRyZWU8LXRyYWluKAogIENhcmJvbkVtaXNzaW9ufi4sCiAgZGF0YSA9IGNhcmJvblRyYWluRGF0YSwKICBtZXRob2Q9ImdibSIsCiAgdHJDb250cm9sPXRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLG51bWJlciA9IDUpCikKYGBgCmBgYHtyfQpnckJvb3N0ZWRUcmVlCgpnYm1QcmVkPC1wcmVkaWN0KGdyQm9vc3RlZFRyZWUsIGNhcmJvblRlc3REYXRhKQpgYGAKYGBge3J9Ck1BRShjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixnYm1QcmVkKQpybXNlKGNhcmJvblRlc3REYXRhJENhcmJvbkVtaXNzaW9uLGdibVByZWQpCmNvcihjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixnYm1QcmVkKV4yCmBgYApgYGB7cn0KcGxvdChjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbixnYm1QcmVkKQpgYGAKI1NWIExpbmVhciBNb2RlbApgYGB7cn0Kc2V0LnNlZWQoMSkKCnN2bUxpbmVhcjwtdHJhaW4oCiAgQ2FyYm9uRW1pc3Npb25+LiwKICBkYXRhID0gY2FyYm9uVHJhaW5EYXRhLAogIG1ldGhvZD0ic3ZtTGluZWFyIiwKICB0ckNvbnRyb2w9dHJhaW5Db250cm9sKG1ldGhvZCA9ICJjdiIsbnVtYmVyID0gNSwgcHJlUHJvYz1jKCJjZW50ZXIiLCJzY2FsZSIpKQopCmBgYApgYGB7cn0Kc3ZtTGluZWFyCgpzdm1QcmVkPC1wcmVkaWN0KHN2bUxpbmVhcixjYXJib25UZXN0RGF0YSkKCnBsb3Qoc3ZtUHJlZCxjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbikKYGBgCiNTVk0gUmFkaWFsIE1vZGVsCmBgYHtyfQpzZXQuc2VlZCgxKQoKc3ZtUmFkaWFsPC10cmFpbigKICBDYXJib25FbWlzc2lvbn4uLAogIGRhdGEgPSBjYXJib25UcmFpbkRhdGEsCiAgbWV0aG9kPSJzdm1SYWRpYWwiLAogIHRyQ29udHJvbD10cmFpbkNvbnRyb2wobWV0aG9kID0gImN2IixudW1iZXIgPSA1LCBwcmVQcm9jPWMoImNlbnRlciIsInNjYWxlIikpCikKYGBgCgpgYGB7cn0Kc3ZtUmFkaWFsCgpzdm1SYWRpYWxQcmVkPC1wcmVkaWN0KHN2bVJhZGlhbCxjYXJib25UZXN0RGF0YSkKCnBsb3Qoc3ZtUmFkaWFsUHJlZCxjYXJib25UZXN0RGF0YSRDYXJib25FbWlzc2lvbikKYGBgCiNDb21wYXJpbmcgbW9kZWxzIApgYGB7cn0KY29tcGFyZT1yZXNhbXBsZXMobGlzdChLTk49a25uTW9kZWwsTElOPWxtTW9kZWwsc3RlcFdpc2U9c3RlcHdpc2VNb2RlbCxMYXNzbz1sYXNzb01vZGVsLFJpZGdlPXJpZGdlTW9kZWwsRW5ldD1lbmV0TW9kZWwsUkY9bVJmLEdCTT1nckJvb3N0ZWRUcmVlLFNWTUw9c3ZtTGluZWFyLFNWTVI9c3ZtUmFkaWFsKSkKc3VtbWFyeShjb21wYXJlKSAjIE91dCBvZiBhbGwgdGhlIG1vZGVscyBTVk0gUmFkaWFsIHN0YW5kcyBvdXQgdGhlIG1vc3QKYGBgCgojIE5ldXJhbCBOZXR3b3JrIFByZXByb2Nlc3NpbmcKYGBge3J9CmxpYnJhcnkoY2FyZXQpCmNhcmJvbkluZDwtY3JlYXRlRGF0YVBhcnRpdGlvbihjYXJib25UcmFpbkRhdGEkQ2FyYm9uRW1pc3Npb24scD0wLjksbGlzdCA9IEZBTFNFKQpjYXJib25JbmRleDwtd2hpY2gobmFtZXMoY2FyYm9uVHJhaW5EYXRhKT09J0NhcmJvbkVtaXNzaW9uJykKCmNhcmJvblRyYWluaW5nRGF0YTwtY2FyYm9uVHJhaW5EYXRhW2NhcmJvbkluZCwtY2FyYm9uSW5kZXhdCnN0cihjYXJib25UcmFpbmluZ0RhdGEpCgpjYXJib25UcmFpbmluZ0xhYmVsczwtY2FyYm9uVHJhaW5EYXRhW2NhcmJvbkluZCxjYXJib25JbmRleF0Kc3RyKGNhcmJvblRyYWluaW5nTGFiZWxzKQoKY2FyYm9uVmFsaWRhdGlvbkRhdGE8LWNhcmJvblRyYWluRGF0YVstY2FyYm9uSW5kLC1jYXJib25JbmRleF0KY2FyYm9uVmFsaWRhdGlvbkRhdGEKCmNhcmJvblZhbGlkYXRpb25MYWJlbHM8LWNhcmJvblRyYWluRGF0YVstY2FyYm9uSW5kLGNhcmJvbkluZGV4XQpzdHIoY2FyYm9uVmFsaWRhdGlvbkxhYmVscykKCmNhcmJvblRlc3RpbmdEYXRhPC1jYXJib25UZXN0RGF0YVssLWNhcmJvbkluZGV4XQpjYXJib25UZXN0aW5nRGF0YQoKY2FyYm9uVGVzdGluZ0xhYmVsczwtY2FyYm9uVGVzdERhdGFbLGNhcmJvbkluZGV4XQpzdHIoY2FyYm9uVGVzdGluZ0xhYmVscykKYGBgCmBgYHtyfQpkaW0oY2FyYm9uVHJhaW5pbmdEYXRhKQpkaW0oY2FyYm9uVGVzdGluZ0RhdGEpCmBgYAoKCiNTY2FsaW5nIG51bWVyaWMgVmFyaWFibGVzIGFuZCBvbmUgaG90IGVuY29kaW5nIGNhdGVnb3JpY2FsIHZhcmlhYmxlcwpgYGB7cn0KbGlicmFyeShtbHRvb2xzKQpsaWJyYXJ5KGRhdGEudGFibGUpCm51bWVyaWNDb2xzPC1jKCJNb250aGx5Lkdyb2NlcnkuQmlsbCIsIlZlaGljbGUuTW9udGhseS5EaXN0YW5jZS5LbSIsIldhc3RlLkJhZy5XZWVrbHkuQ291bnQiLAogICAgICAgICAgICAgICAiSG93LkxvbmcuVFYuUEMuRGFpbHkuSG91ciIsIkhvdy5NYW55Lk5ldy5DbG90aGVzLk1vbnRobHkiLCJIb3cuTG9uZy5JbnRlcm5ldC5EYWlseS5Ib3VyIiwiTWV0YWwiLCJQYXBlciIsIlBsYXN0aWMiLCJHbGFzcyIsIlN0b3ZlIiwiT3ZlbiIKICAgICAgICAgICAgICAgLCJNaWNyb3dhdmUiLCJHcmlsbCIsIkFpcmZyeWVyIiwiTm9fQ29va2luZyIsIk5vX1JlY3ljbGluZyIpCgpjYXRlZ29yaWNhbENvbHM8LWMoIkJvZHkuVHlwZSIsIlNleCIsIkRpZXQiLCJIb3cuT2Z0ZW4uU2hvd2VyIiwiSGVhdGluZy5FbmVyZ3kuU291cmNlIiwiVHJhbnNwb3J0IiwiVmVoaWNsZS5UeXBlIiwiU29jaWFsLkFjdGl2aXR5IiwKICAgICAgICAgICAgICAgICAgICJGcmVxdWVuY3kub2YuVHJhdmVsaW5nLmJ5LkFpciIsIldhc3RlLkJhZy5TaXplIiwiRW5lcmd5LmVmZmljaWVuY3kiKQoKY2FyYm9uVHJhaW5pbmdEYXRhTmV3PC1zY2FsZShjYXJib25UcmFpbmluZ0RhdGFbLG51bWVyaWNDb2xzXSkKY29sTWVhblRyYWluPC1hdHRyKGNhcmJvblRyYWluaW5nRGF0YU5ldywic2NhbGVkOmNlbnRlciIpCmNvbFN0ZGRldnNUcmFpbjwtYXR0cihjYXJib25UcmFpbmluZ0RhdGFOZXcsInNjYWxlZDpzY2FsZSIpCgoKY2FyYm9uVHJhaW5pbmdEYXRhWyxudW1lcmljQ29sc108LWNhcmJvblRyYWluaW5nRGF0YU5ldwpjYXJib25WYWxpZGF0aW9uRGF0YVssbnVtZXJpY0NvbHNdPC1zY2FsZShjYXJib25WYWxpZGF0aW9uRGF0YVssbnVtZXJpY0NvbHNdLGNlbnRlciA9IGNvbE1lYW5UcmFpbixzY2FsZSA9IGNvbFN0ZGRldnNUcmFpbikKY2FyYm9uVGVzdGluZ0RhdGFbLG51bWVyaWNDb2xzXTwtc2NhbGUoY2FyYm9uVGVzdGluZ0RhdGFbLG51bWVyaWNDb2xzXSxjZW50ZXIgPSBjb2xNZWFuVHJhaW4sc2NhbGUgPSBjb2xTdGRkZXZzVHJhaW4pCgpjYXJib25UcmFpbmluZ1RhYmxlPC1hcy5kYXRhLnRhYmxlKGNhcmJvblRyYWluaW5nRGF0YSkKY2FyYm9uVmFsaWRhdGlvblRhYmxlPC1hcy5kYXRhLnRhYmxlKGNhcmJvblZhbGlkYXRpb25EYXRhKQpjYXJib25UZXN0aW5nVGFibGU8LWFzLmRhdGEudGFibGUoY2FyYm9uVGVzdGluZ0RhdGEpCgpjYXJib25UcmFpbmluZ09uZUhvdDwtb25lX2hvdChjYXJib25UcmFpbmluZ1RhYmxlLG5hQ29scz1GQUxTRSxkcm9wQ29scz1UUlVFLGRyb3BVbnVzZWRMZXZlbHM9VFJVRSkKY2FyYm9uVHJhaW5pbmdPbmVIb3QKCmNhcmJvblZhbGlkYXRpb25PbmVIb3Q8LW9uZV9ob3QoY2FyYm9uVmFsaWRhdGlvblRhYmxlLG5hQ29scz1GQUxTRSxkcm9wQ29scz1UUlVFLGRyb3BVbnVzZWRMZXZlbHM9VFJVRSkKY2FyYm9uVmFsaWRhdGlvbk9uZUhvdAoKY2FyYm9uVGVzdGluZ09uZUhvdDwtb25lX2hvdChjYXJib25UZXN0aW5nVGFibGUsbmFDb2xzPUZBTFNFLGRyb3BDb2xzPVRSVUUsZHJvcFVudXNlZExldmVscz1UUlVFKQpjYXJib25UZXN0aW5nT25lSG90CgpjYXJib25UcmFpbmluZ0ZpbmFsPC1hcy5kYXRhLmZyYW1lKGNiaW5kKGNhcmJvblRyYWluaW5nVGFibGVbLCAuLm51bWVyaWNDb2xzXSwgY2FyYm9uVHJhaW5pbmdPbmVIb3QpKQpjYXJib25UcmFpbmluZ0ZpbmFsCgpjYXJib25WYWxpZGF0aW9uRmluYWw8LWFzLmRhdGEuZnJhbWUoY2JpbmQoY2FyYm9uVmFsaWRhdGlvblRhYmxlWywgLi5udW1lcmljQ29sc10sIGNhcmJvblZhbGlkYXRpb25PbmVIb3QpKQpjYXJib25WYWxpZGF0aW9uRmluYWwKCmNhcmJvblRlc3RpbmdGaW5hbDwtYXMuZGF0YS5mcmFtZShjYmluZChjYXJib25UZXN0aW5nVGFibGVbLCAuLm51bWVyaWNDb2xzXSwgY2FyYm9uVGVzdGluZ09uZUhvdCkpCmNhcmJvblRlc3RpbmdGaW5hbApgYGAKYGBge3J9CmxpYnJhcnkoa2VyYXMpCgptb2RlbDwta2VyYXNfbW9kZWxfc2VxdWVudGlhbCgpJT4lCiAgbGF5ZXJfZGVuc2UodW5pdHMgPSAzMixhY3RpdmF0aW9uID0gInJlbHUiLGlucHV0X3NoYXBlID0gZGltKGNhcmJvblRyYWluaW5nRmluYWwpWzJdKSU+JQogIGxheWVyX2Ryb3BvdXQocmF0ZT0wLjMpJT4lCiAgbGF5ZXJfZGVuc2UodW5pdHMgPSAzMixhY3RpdmF0aW9uID0gInJlbHUiKSU+JQogIGxheWVyX2Ryb3BvdXQocmF0ZT0wLjMpJT4lCiAgbGF5ZXJfZGVuc2UodW5pdHMgPSAxNixhY3RpdmF0aW9uID0gInJlbHUiKSU+JQogIGxheWVyX2Ryb3BvdXQocmF0ZT0wLjMpJT4lCiAgbGF5ZXJfZGVuc2UodW5pdHMgPSAxKQoKbW9kZWwgJT4lIGNvbXBpbGUoCiAgbG9zcz0ibXNlIiwKICBvcHRpbWl6ZXI9b3B0aW1pemVyX2FkYW0obHI9MC4wMDEpCikKCmhpc3Rvcnk8LW1vZGVsICU+JSBmaXQoYXMubWF0cml4KGNhcmJvblRyYWluaW5nRmluYWwpLAogICAgICAgICAgICAgICAgICAgICAgIGNhcmJvblRyYWluaW5nTGFiZWxzLAogICAgICAgICAgICAgICAgICAgICAgIGJhdGNoX3NpemU9NTAsCiAgICAgICAgICAgICAgICAgICAgICAgZXBvY2hzPTIwLAogICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fZGF0YT1saXN0KGFzLm1hdHJpeChjYXJib25WYWxpZGF0aW9uRmluYWwpLGNhcmJvblZhbGlkYXRpb25MYWJlbHMpCiAgICAgICAgICAgICAgICAgICAgICAgICApCmBgYApgYGB7cn0Ka2VyYXNQcmVkaWN0aW9uPC1tb2RlbCAlPiUgcHJlZGljdChhcy5tYXRyaXgoY2FyYm9uVGVzdGluZ0ZpbmFsKSkKCnJtc2U9ZnVuY3Rpb24oeCx5KXsKICByZXR1cm4oKG1lYW4oeC15KV4yKV4wLjUpCn0KCnJtc2Uoa2VyYXNQcmVkaWN0aW9uLGNhcmJvblRlc3RMYWJlbHMpCk1BRShrZXJhc1ByZWRpY3Rpb24sY2FyYm9uVGVzdExhYmVscykKcnNxdWFyZWQ8LXN1bSgoa2VyYXNQcmVkaWN0aW9uLWNhcmJvblRlc3RMYWJlbHMpXjIpL3N1bSgoY2FyYm9uVGVzdExhYmVscy1tZWFuKGNhcmJvblRlc3RMYWJlbHMpKV4yKQpyc3F1YXJlZApgYGAKYGBge3J9CmxpYnJhcnkodGZydW5zKQpydW5zPC10dW5pbmdfcnVuKAogICJjYXJib25FbWlzc2lvbi5SIiwKICBmbGFncz1saXN0KAogICAgbGVhcm5pbmdfcmF0ZT1jKDAuMSwwLjUsMC4wMSwwLjAwMSksCiAgICBub2RlczE9Yyg4LDE2LDMyLDY0LDEyOCksCiAgICBub2RlczI9Yyg4LDE2LDMyLDY0LDEyOCksCiAgICBub2RlczM9Yyg4LDE2LDMyLDY0LDEyOCksCiAgICBiYXRjaF9zaXplPWMoMTYsMzIsNjQsMTI4KSwKICAgIGRyb3BvdXQ9YygwLjEsMC4yLDAuMywwLjQsMC41KSwKICAgIGFjdGl2YXRpb249YygicmVsdSIpCiAgKSxzYW1wbGU9MC4wMDEKKQpgYGAKCiMgUnVucwpgYGB7cn0KcnVucz1ydW5zW29yZGVyKHJ1bnMkbWV0cmljX3ZhbF9sb3NzKSxdCnJ1bnMKdmlld19ydW4ocnVucyRydW5fZGlyWzFdKQpgYGAKYGBge3J9CmRpbShjYXJib25UcmFpbmluZ0ZpbmFsKQpkaW0oY2FyYm9uVmFsaWRhdGlvbkZpbmFsKQpjYXJib25UcmFpbmluZ0ZpbmFsPC1yYmluZChjYXJib25UcmFpbmluZ0ZpbmFsLGNhcmJvblZhbGlkYXRpb25GaW5hbCkKY2FyYm9uVHJhaW5pbmdMYWJlbHM8LWMoY2FyYm9uVHJhaW5pbmdMYWJlbHMsY2FyYm9uVmFsaWRhdGlvbkxhYmVscykKZGltKGNhcmJvblRyYWluaW5nRmluYWwpCmBgYAoKCmBgYHtyfQpCZXN0TW9kZWw8LWtlcmFzX21vZGVsX3NlcXVlbnRpYWwoKSU+JQogIGxheWVyX2RlbnNlKHVuaXRzID0gMTI4LGFjdGl2YXRpb24gPSAicmVsdSIsaW5wdXRfc2hhcGUgPSBkaW0oY2FyYm9uVHJhaW5pbmdGaW5hbClbMl0pJT4lCiAgbGF5ZXJfZHJvcG91dChyYXRlPTAuMyklPiUKICBsYXllcl9kZW5zZSh1bml0cyA9IDgsYWN0aXZhdGlvbiA9ICJyZWx1IiklPiUKICBsYXllcl9kcm9wb3V0KHJhdGU9MC4zKSU+JQogIGxheWVyX2RlbnNlKHVuaXRzID0gMTI4LGFjdGl2YXRpb24gPSAicmVsdSIpJT4lCiAgbGF5ZXJfZHJvcG91dChyYXRlPTAuMyklPiUKICBsYXllcl9kZW5zZSh1bml0cyA9IDEpCgpCZXN0TW9kZWwgJT4lIGNvbXBpbGUoCiAgbG9zcz0ibXNlIiwKICBvcHRpbWl6ZXI9b3B0aW1pemVyX2FkYW0obHI9MC4wMDEpCikKCmhpc3Rvcnk8LUJlc3RNb2RlbCAlPiUgZml0KGFzLm1hdHJpeChjYXJib25UcmFpbmluZ0ZpbmFsKSwKICAgICAgICAgICAgICAgICAgICAgICBjYXJib25UcmFpbmluZ0xhYmVscywKICAgICAgICAgICAgICAgICAgICAgICBiYXRjaF9zaXplPTEyOCwKICAgICAgICAgICAgICAgICAgICAgICBlcG9jaHM9MjAsCiAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbl9kYXRhPWxpc3QoYXMubWF0cml4KGNhcmJvblRlc3RpbmdGaW5hbCksY2FyYm9uVGVzdGluZ0xhYmVscykKICAgICAgICAgICAgICAgICAgICAgICAgICkKYGBgCmBgYHtyfQpwcmVkaWN0QmVzdE1vZGVsPC1tb2RlbCAlPiUgcHJlZGljdChhcy5tYXRyaXgoY2FyYm9uVGVzdGluZ0ZpbmFsKSkKYGBgCmBgYHtyfQpybXNlPWZ1bmN0aW9uKHgseSl7CiAgcmV0dXJuKChtZWFuKHgteSleMileMC41KQp9CgpybXNlKHByZWRpY3RCZXN0TW9kZWwsY2FyYm9uVGVzdGluZ0xhYmVscykKTUFFKHByZWRpY3RCZXN0TW9kZWwsY2FyYm9uVGVzdGluZ0xhYmVscykKcnNxdWFyZWRCZXN0PC1zdW0oKHByZWRpY3RCZXN0TW9kZWwtY2FyYm9uVGVzdGluZ0xhYmVscyleMikvc3VtKChjYXJib25UZXN0aW5nTGFiZWxzLW1lYW4oY2FyYm9uVGVzdGluZ0xhYmVscykpXjIpCnJzcXVhcmVkQmVzdApgYGAKCg==